Yawin

Untitled

May 3rd, 2014
260
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. ORG &4000
  2.  
  3. LD A,1          ;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,TAMMENU
  11. CALL ESCRIBETEXTO
  12.  
  13. CALL SCANF
  14.  
  15. LD HL,TAMMENU2
  16. CALL ESCRIBETEXTO
  17.  
  18. LD HL,&4100
  19. CALL ESCRIBETEXTO
  20.  
  21. RET
  22.  
  23. ;-----------------------------------------------------------------
  24. ;RUTINAS
  25. ;-----------------------------------------------------------------
  26. ESCRIBETEXTO            ;RUTINA PARA ESCRIBIR TEXTOS
  27.                         ;REQUIERE UN .TAMALGO Y UN .TXTALGO
  28.                         ;INPUT:
  29.                         ;"LD HL,TAMALGO"
  30.         LD B,(HL)       ;GUARDAMOS EN "B" EL TAMANO DEL TEXTO
  31.         INC HL          ;INCREMENTAMOS "HL" PARA QUE PASE "A" APUNTAR EL PRIMER CARACTER DEL TEXTO
  32.  
  33.         .ESCRIBE
  34.         LD A,(HL)       ;CARGA EN "A" EL CARACTER AL QUE ESTAMOS APUNTANDO
  35.         CALL &BB5A      ;LLAMAMOS A LA RUTINA DE ESCRITURA
  36.         INC HL          ;APUNTAMOS AL SIGUIENTE CARACTER
  37.         DJNZ ESCRIBE    ;DECREMENTAMOS "B" Y SI NO HAY "ZERO" SALTAMOS A ".ESCRIBE"
  38. RET
  39.  
  40. SCANF           ;RUTINA QUE RECOJE TEXTO
  41.     LD B,0  ;PONEMOS "B" A CERO
  42.     LD HL,&4100 ;ASIGNAMOS A "C" DONDE EMPIEZA A ALMACENARSE
  43.  
  44.     .INICIO
  45.     CALL &BB18  ;LLAMAMOS A LA RUTINA QUE RECOJE LA PULSACION DE UNA TECLA
  46.  
  47.     CP 13       ;COMPARA (RESTA) 13 CON EL ACUMULADOR
  48.     RET Z       ;SI SE HA PULSADO "RETURN" (Z=1), RETORNAMOS
  49.  
  50.     CP 32       ;COMPARA (RESTA) 65 CON EL NUMERO ALMACENADO EN EL ACUMULADOR
  51.     JP C,INICIO ;SI HUBO "CARRY" (ASCII<65) PEDIMOS OTRA TECLA
  52.     CP 123      ;COMPARA (RESTA) 123 CON "A"
  53.     JP NC,INICIO    ;SI NO HUBO CARRY (ASCII>=123) PEDIMOS OTRA TECLA
  54.     CP 97       ;COMPARA (RESTA) 97 CON "A"
  55.     JP NC,SIGUE ;SI NO HUBO CARRY (ASCII>=97) SALTAMOS A "SIGUE"
  56.     CP 91       ;COMPARA (RESTA) 91 CON "A"
  57.     JP NC,INICIO    ;SI NO HUBO CARRY (ASCII>=91) PEDIMOS OTRA TECLA
  58.  
  59.     .SIGUE
  60.     CALL &BB5A  ;LLAMAMOS A LA RUTINA DE ESCRITURA
  61.  
  62.     INC HL      ;INCREMENTAMOS "C" EN 1;
  63.     LD (HL),A   ;GUARDAMOS EN &4040 EL CONTENIDO DEL ACUMULADOR
  64.  
  65.     INC B       ;INCREMENTAMOS "B" EN UNO
  66.     LD A,B      ;GUARDAMOS EN EL ACUMULADOR EL NÚMERO DE LETRAS QUE LLEVAMOS
  67.     LD (&4100),A    ;GUARDAMOS EN "&4440" EL CONTENIDO DEL ACUMULADOR
  68.  
  69.     CALL INICIO
  70. RET
  71.  
  72. ;-----------------------------------------------------------------
  73. ;DATOS
  74. ;-----------------------------------------------------------------
  75. .TAMMENU
  76. DB 59
  77. .TXTMENU
  78. DB " Escribe una palabra. "
  79. DB "Pulsa enter para terminar la edicion:"
  80. .TAMMENU2
  81. DB 11
  82. .TXTMENU2
  83. DB " Has dicho:"
Advertisement
Add Comment
Please, Sign In to add comment