Yawin

CHORRIPROGRAMA NAMBER GÜAN

May 3rd, 2014
358
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. ORG &4000
  2.  
  3. LD A,2          ;CARGAMOS EN EL ACUMULADOR EL DECIMAL "1"
  4. CALL &BC0E      ;ESTABLECE EL MODO DE PANTALLA EN EL QUE ESTA EL ACUMULADOR (0,1,2)
  5.  
  6. LD H,&00
  7. LD L,&00
  8. CALL &BB75      ;POSICIONA EL CURSOR EN (L,H)
  9.  
  10. LD HL,TAMTITULO
  11. CALL ESCRIBETEXTO
  12. CALL SALTOLINEA
  13. CALL SALTOLINEA
  14.  
  15. .BUCLE
  16. LD HL,TAMMENU
  17. CALL ESCRIBETEXTO
  18.  
  19. LD HL,&4100
  20. CALL SCANF
  21.  
  22. LD A,B      ;PARA COMPROBAR SI QUEREMOS SALIR
  23. CP 1        ;RESTAMOS 1 AL NUMERO DE LETRAS RECOGIDAS
  24. JP C,SALIDA ;SI HAY CARRY ES QUE ERA 0 ASI QUE SALIMOS
  25.  
  26. CALL SALTOLINEA
  27.  
  28. LD HL,TAMMENU2
  29. CALL ESCRIBETEXTO
  30.  
  31. LD HL,&4100
  32. CALL ESCRIBETEXTO
  33.  
  34. CALL SALTOLINEA
  35. CALL SALTOLINEA
  36.  
  37. JP BUCLE
  38.  
  39. .SALIDA
  40. CALL SALTOLINEA
  41. RET
  42.  
  43. ;-----------------------------------------------------------------
  44. ;RUTINAS
  45. ;-----------------------------------------------------------------
  46. ESCRIBETEXTO            ;RUTINA PARA ESCRIBIR TEXTOS
  47.                         ;REQUIERE UN .TAMALGO Y UN .TXTALGO
  48.                         ;INPUT:
  49.                         ;"LD HL,$TAMANO_DEL_TEXTO"
  50.         LD B,(HL)       ;GUARDAMOS EN "B" EL TAMANO DEL TEXTO
  51.         INC HL          ;INCREMENTAMOS "HL" PARA QUE PASE "A" APUNTAR EL PRIMER CARACTER DEL TEXTO
  52.  
  53.         .ESCRIBE
  54.         LD A,(HL)       ;CARGA EN "A" EL CARACTER AL QUE ESTAMOS APUNTANDO
  55.         CALL &BB5A      ;LLAMAMOS A LA RUTINA DE ESCRITURA
  56.         INC HL          ;APUNTAMOS AL SIGUIENTE CARACTER
  57.         DJNZ ESCRIBE    ;DECREMENTAMOS "B" Y SI NO HAY "ZERO" SALTAMOS A ".ESCRIBE"
  58. RET
  59.  
  60. SALTOLINEA
  61.     LD A,13     ;METEMOS EL ASCII DE "RETURN" EN EL ACUMULADOR
  62.     CALL &BB5A  ;Y LO ESCRIBIMOS
  63.     LD A,10     ;METEMOS EL ASCII DE "RETURN" EN EL ACUMULADOR
  64.     CALL &BB5A  ;Y LO ESCRIBIMOS
  65. RET
  66.  
  67. SCANF       ;RUTINA QUE RECOJE TEXTO
  68.         ;INPUT:
  69.         ;"LD HL,$DIRECCION_DONDE_EMPEZAR_A_GUARDAR"
  70.             ;(TEMP) "LD DE,$MISMA_DIRECCION_QUE_ARRIBA"
  71.     LD B,0  ;PONEMOS "B" A CERO
  72.     LD D,H  ;ASIGNAMOS A "DE" DONDE EMPIEZA A ALMACENARSE LA FRASE
  73.     LD E,L
  74.  
  75.     .INICIO
  76.     CALL &BB18   ;LLAMAMOS A LA RUTINA QUE RECOJE LA PULSACION DE UNA TECLA
  77.  
  78.     CP 13      ;COMPARA (RESTA) 13 CON EL ACUMULADOR
  79.     RET Z      ;SI SE HA PULSADO "RETURN" (Z=1), RETORNAMOS
  80.  
  81.     CP 32      ;COMPARA (RESTA) 65 CON EL NUMERO ALMACENADO EN EL ACUMULADOR
  82.     JP C,INICIO   ;SI HUBO "CARRY" (ASCII<65) PEDIMOS OTRA TECLA
  83.     CP 123      ;COMPARA (RESTA) 123 CON "A"
  84.     JP NC,INICIO   ;SI NO HUBO CARRY (ASCII>=123) PEDIMOS OTRA TECLA
  85.     CP 97      ;COMPARA (RESTA) 97 CON "A"
  86.     JP NC,SIGUE   ;SI NO HUBO CARRY (ASCII>=97) SALTAMOS A "SIGUE"
  87.     CP 91      ;COMPARA (RESTA) 91 CON "A"
  88.     JP NC,INICIO   ;SI NO HUBO CARRY (ASCII>=91) PEDIMOS OTRA TECLA
  89.  
  90.     .SIGUE
  91.     CALL &BB5A   ;LLAMAMOS A LA RUTINA DE ESCRITURA
  92.  
  93.     INC HL      ;INCREMENTAMOS "C" EN 1;
  94.     LD (HL),A   ;GUARDAMOS EN &4040 EL CONTENIDO DEL ACUMULADOR
  95.  
  96.     INC B      ;INCREMENTAMOS "B" EN UNO
  97.     LD A,B      ;GUARDAMOS EN EL ACUMULADOR EL NÚMERO DE LETRAS QUE LLEVAMOS
  98.     LD (DE),A   ;GUARDAMOS EN "&4440" EL CONTENIDO DEL ACUMULADOR
  99.  
  100.     CALL INICIO
  101. RET
  102.  
  103. ;-----------------------------------------------------------------
  104. ;DATOS
  105. ;-----------------------------------------------------------------
  106.  
  107. .TAMTITULO
  108. DB 50
  109. .TXTTITULO
  110. DB " CHORRIPROGRAMA NAMBER GUAN (CON DIERESIS EN LA U)"
  111. .TAMMENU
  112. DB 59
  113. .TXTMENU
  114. DB "Escribe una palabra. "
  115. DB "Pulsa enter para terminar la edicion: "
  116. .TAMMENU2
  117. DB 11
  118. .TXTMENU2
  119. DB "Has dicho: "
Advertisement
Add Comment
Please, Sign In to add comment