Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ORG &4000
- LD A,2 ;CARGAMOS EN EL ACUMULADOR EL DECIMAL "1"
- CALL &BC0E ;ESTABLECE EL MODO DE PANTALLA EN EL QUE ESTA EL ACUMULADOR (0,1,2)
- LD H,&00
- LD L,&00
- CALL &BB75 ;POSICIONA EL CURSOR EN (L,H)
- LD HL,TAMTITULO
- CALL ESCRIBETEXTO
- CALL SALTOLINEA
- CALL SALTOLINEA
- .BUCLE
- LD HL,TAMMENU
- CALL ESCRIBETEXTO
- LD HL,&4100
- CALL SCANF
- LD A,B ;PARA COMPROBAR SI QUEREMOS SALIR
- CP 1 ;RESTAMOS 1 AL NUMERO DE LETRAS RECOGIDAS
- JP C,SALIDA ;SI HAY CARRY ES QUE ERA 0 ASI QUE SALIMOS
- CALL SALTOLINEA
- LD HL,TAMMENU2
- CALL ESCRIBETEXTO
- LD HL,&4100
- CALL ESCRIBETEXTO
- CALL SALTOLINEA
- CALL SALTOLINEA
- JP BUCLE
- .SALIDA
- CALL SALTOLINEA
- RET
- ;-----------------------------------------------------------------
- ;RUTINAS
- ;-----------------------------------------------------------------
- ESCRIBETEXTO ;RUTINA PARA ESCRIBIR TEXTOS
- ;REQUIERE UN .TAMALGO Y UN .TXTALGO
- ;INPUT:
- ;"LD HL,$TAMANO_DEL_TEXTO"
- LD B,(HL) ;GUARDAMOS EN "B" EL TAMANO DEL TEXTO
- INC HL ;INCREMENTAMOS "HL" PARA QUE PASE "A" APUNTAR EL PRIMER CARACTER DEL TEXTO
- .ESCRIBE
- LD A,(HL) ;CARGA EN "A" EL CARACTER AL QUE ESTAMOS APUNTANDO
- CALL &BB5A ;LLAMAMOS A LA RUTINA DE ESCRITURA
- INC HL ;APUNTAMOS AL SIGUIENTE CARACTER
- DJNZ ESCRIBE ;DECREMENTAMOS "B" Y SI NO HAY "ZERO" SALTAMOS A ".ESCRIBE"
- RET
- SALTOLINEA
- LD A,13 ;METEMOS EL ASCII DE "RETURN" EN EL ACUMULADOR
- CALL &BB5A ;Y LO ESCRIBIMOS
- LD A,10 ;METEMOS EL ASCII DE "RETURN" EN EL ACUMULADOR
- CALL &BB5A ;Y LO ESCRIBIMOS
- RET
- SCANF ;RUTINA QUE RECOJE TEXTO
- ;INPUT:
- ;"LD HL,$DIRECCION_DONDE_EMPEZAR_A_GUARDAR"
- ;(TEMP) "LD DE,$MISMA_DIRECCION_QUE_ARRIBA"
- LD B,0 ;PONEMOS "B" A CERO
- LD D,H ;ASIGNAMOS A "DE" DONDE EMPIEZA A ALMACENARSE LA FRASE
- LD E,L
- .INICIO
- CALL &BB18 ;LLAMAMOS A LA RUTINA QUE RECOJE LA PULSACION DE UNA TECLA
- CP 13 ;COMPARA (RESTA) 13 CON EL ACUMULADOR
- RET Z ;SI SE HA PULSADO "RETURN" (Z=1), RETORNAMOS
- CP 32 ;COMPARA (RESTA) 65 CON EL NUMERO ALMACENADO EN EL ACUMULADOR
- JP C,INICIO ;SI HUBO "CARRY" (ASCII<65) PEDIMOS OTRA TECLA
- CP 123 ;COMPARA (RESTA) 123 CON "A"
- JP NC,INICIO ;SI NO HUBO CARRY (ASCII>=123) PEDIMOS OTRA TECLA
- CP 97 ;COMPARA (RESTA) 97 CON "A"
- JP NC,SIGUE ;SI NO HUBO CARRY (ASCII>=97) SALTAMOS A "SIGUE"
- CP 91 ;COMPARA (RESTA) 91 CON "A"
- JP NC,INICIO ;SI NO HUBO CARRY (ASCII>=91) PEDIMOS OTRA TECLA
- .SIGUE
- CALL &BB5A ;LLAMAMOS A LA RUTINA DE ESCRITURA
- INC HL ;INCREMENTAMOS "C" EN 1;
- LD (HL),A ;GUARDAMOS EN &4040 EL CONTENIDO DEL ACUMULADOR
- INC B ;INCREMENTAMOS "B" EN UNO
- LD A,B ;GUARDAMOS EN EL ACUMULADOR EL NÚMERO DE LETRAS QUE LLEVAMOS
- LD (DE),A ;GUARDAMOS EN "&4440" EL CONTENIDO DEL ACUMULADOR
- CALL INICIO
- RET
- ;-----------------------------------------------------------------
- ;DATOS
- ;-----------------------------------------------------------------
- .TAMTITULO
- DB 50
- .TXTTITULO
- DB " CHORRIPROGRAMA NAMBER GUAN (CON DIERESIS EN LA U)"
- .TAMMENU
- DB 59
- .TXTMENU
- DB "Escribe una palabra. "
- DB "Pulsa enter para terminar la edicion: "
- .TAMMENU2
- DB 11
- .TXTMENU2
- DB "Has dicho: "
Advertisement
Add Comment
Please, Sign In to add comment