peek &hf3b1 (Development Foros MSX)MSX Resource Center            
                       
English Nederlands Espa�ol Portugu�s Russian                  
 Noticias
   Página principal
  Almacén de noticias
  Temas de noticias

 Recursos
   Foros MSX
  Artículos
  Analisis
  Informe de ferias/RUs
  Álbum de fotos
  Ferias y encuentros
  Encuestas
  Enlaces
  Buscar

 Software
   Descargas
  Tienda Online

 MRC
   Quiénes somos
  Únete a nuestro equipo
  Donar
  Políticas
  Contacta con nosotros
  Enlázanos
  Estadísticas

 Buscar
 
  

  

 Login
 

Login

Contraseña




¿Aún no tienes una cuenta? ¡Conviértete en miembro del MSX Resource Center! ¡Únete a nosotros!.


 Estadísticas
 

Hay 39 invitados y 3 miembros en línea

Eres un usuario anónimo.
 

Foros MSX


Foros MSX

Development - peek &hf3b1

Ir a la página ( Página anterior 1 | 2 )
Autor

peek &hf3b1

BiFi
msx guru
Mensajes: 3142
Publicado: Agosto 17 2005, 20:23   
after checking with the VT-52 docs... I used that ESC+J to clear the screen from the location I provided... it was really too long ago when I seen the program last

I also saw a ESC+M in the program... that indeed I used to scroll the bottom part... it deletes a line...
Sonic_aka_T

msx guru
Mensajes: 2269
Publicado: Agosto 17 2005, 23:49   
I don't think what you want to do can be done in BASIC. Fortunately though, it's pretty easy in ASM. (Everything is ) Anyhoo, see if this little piece of code does the trick... I haven't tested it, but it should probably do the trick. Assemble with your favorite assembler and change the address if needed. You can still use LOCATE and PRINT in BASIC, but you can also use the function provided here while poking the X/Y coordinates to the vram_address thingy as shown. Hope it helps...

Screen_Width: EQU 80
Upper_Screen: EQU Screen_Width*0
Lower_Screen: EQU Screen_Width*12

	ORG	$C000

	JP	Initialize		; DEFUSR=&HC000: A=USR(0)
	JP	Print_Text		; DEFUSR=&HC003: T$="Hi!": A=USR(T$)
	JP	Scroll_Upper		; DEFUSR=&HC006: A=USR(0)
	JP	Scroll_Lower		; DEFUSR=&HC009: A=USR(0)

VramAddress:
	DW	$0000			; POKE &HC00C, (Y*Screen_Width)+X

Initialize:
	LD	HL,0+Screen_Width*11
	LD	DE,1+Screen_Width*11
	LD	BC,Screen_Width-1
	LD	(HL),$20
	LDIR
	XOR	A
	CALL	$005F
	JP	$00CC

Print_Text:
	CP	$03			; DEFUSR Arg is string
	RET	NZ
	LD	A,(DE)			; Length of String
	INC	DE
	LD	C,A
	LD	A,(DE)			; Low Byte Address
	INC	DE
	LD	L,A
	LD	A,(DE)			; High Byte Address
	LD	H,A
	LD	B,0
	LD	DE,(VramAddress)	; VRAM Address
	JP	$005C

Scroll_Upper:
	LD	HL,Upper_Screen+Screen_Width
	LD	DE,Screen_Buffer
	LD	BC,11*Screen_Width
	CALL	$0059
	LD	HL,Screen_Buffer
	LD	DE,Upper_Screen
	LD	BC,12*Screen_Width
	JP	$005C

Scroll_Lower:
	LD	HL,Lower_Screen+Screen_Width
	LD	DE,Screen_Buffer
	LD	BC,11*Screen_Width
	CALL	$0059
	LD	HL,Screen_Buffer
	LD	DE,Lower_Screen
	LD	BC,12*Screen_Width
	JP	$005C

Screen_Buffer:
	DS	Screen_Width*12

DarQ
msx professional
Mensajes: 844
Publicado: Agosto 18 2005, 01:01   
aha, this is very interesting sonic! i will try it, and learn from it.. so i can code my own routine in the end
Sonic_aka_T

msx guru
Mensajes: 2269
Publicado: Agosto 18 2005, 02:02   
You're welcome?
 
Ir a la página ( Página anterior 1 | 2 )
 







(c) 1994 - 2009 Fundación MSX Resource Center. MSX es una marca registrada de MSX Licensing Corporation