peek &hf3b1 (Development MSX Fora)MSX Resource Center PassionMSX MSX2 contest           
            
English Nederlands Español Português Russian         
 Nieuws
   Voorpagina
  Nieuws archief
  Nieuws onderwerpen

 Informatie
   MSX Fora
  Artikelen
  Recensies
  Beursverslagen
  Fotoreportages
  Beurzen en meetings
  Enquêtes
  Links
  Zoek

 Software
   Downloads
  Webshop

 MRC
   Wie we zijn
  Kom bij ons team
  Doneren
  Policies
  Contact met het MRC
  Link naar Ons
  Statistieken

 Zoek
 
  

  

 Login
 

Gebruikersnaam

Wachtwoord




Ben je nog niet lid? Klik hier en word MSX vriend!


 Statistieken
 

Er zijn 98 gasten en 1 MSX vriend online

Je bent een anonieme bezoeker.
 

MSX Fora


MSX Fora

Development - peek &hf3b1

Ga naar pagina ( Vorige pagina 1 | 2 )
Schrijver

peek &hf3b1

BiFi
msx guru
Berichten: 3142
Geplaatst: 17 Augustus 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
Berichten: 2262
Geplaatst: 17 Augustus 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
Berichten: 836
Geplaatst: 18 Augustus 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
Berichten: 2262
Geplaatst: 18 Augustus 2005, 02:02   
You're welcome?
 
Ga naar pagina ( Vorige pagina 1 | 2 )
 







(c) 1994 - 2008 Stichting MSX Resource Center. MSX is een trademark van MSX Licensing Corporation.