i write this for one msx-friend but i can't test because i are at work... please somebody can test? (Development Foros MSX)MSX Resource Center MSXdev 2008 - MSX1 development bonanza!           
                       
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 160 invitados y 3 miembros en línea

Eres un usuario anónimo.
 

Foros MSX


Foros MSX

Development - i write this for one msx-friend but i can't test because i are at work... please somebody can test?

Autor

i write this for one msx-friend but i can't test because i are at work... please somebody can test?

flyguille
msx master
Mensajes: 1181
Publicado: Julio 01 2004, 20:16   
1 REM ************************************************************************
2 REM * THIS EXAMPLE WILL MOVE ALL THE SCREEN TEXT, ONE POSITION TO THE LEFT *
3 REM * THE COPY IS DONE FROM A SQUARE DEFINED BY (X1,Y1)-(X2,Y2) AND THE    *
4 REM * SAME IS MOVE TO (X3,Y3)                                              *
5 REM ************************************************************************
10 CLEAR 200,&HDFFF:SCREEN 1:LINE INPUT "WRITE ANYTHING IN THE SCREEN PLEASE:";A$
20 AD=&HE000:GOSUB 1000:DEF USR0=&HE007
30 AD=&HE100:GOSUB 1000:DEF USR1=&HE107:REM !!!LOAD THE ROUTINE SEVERAL TIMES TO PRESET SEVERAL MOVEMENTS.!!!
40 POKE &HE000,1:POKE &HE001,0: REM X1 = 1 , Y1= 0
50 POKE &HE002,31:POKE &HE003,23: REM X2= 31, Y2= 23
60 POKE &HE004,0:POKE &HE005,0: REM X3 = 0 , Y3=0
70 A=USR0(0)
80 A$=INKEY$:IF A$="" THEN GOTO 70
90 END
1000 REM ************************************
1010 REM * LOADER OF THE ROUTINE IN MEMORY  *
1020 REM * AD = INITIAL ADDRESS  .          *
1030 REM ************************************
1040 RESTORE 1000:X=AD
1050 READ A$:IF A$="END" THEN RETURN
1060 IF MID$(A$,1,1)="!" THEN POKE X,VAL("&H"+MID$(A$,2))+val("&h"+left$(hex$(AD),2)):GOTO 1080
1070 POKE X,VAL("&H"+A$)
1080 X=X+1:GOTO 1050
1090 DATA 00,00,00,00,00,00,00 
1100 DATA 3A,05,!0,47,3A,03,!0,4F,3A,01,!0,B8,30,07,3A,01,!0,4F,3A,03,!0,47
1110 DATA 3A,05,!0,30,04,5F,78,91,83,32,06,!0
1120 DATA C5
1130 DATA 68,26,00,29,29,29,29,29,3A,00,!0,5F,16,00,19,11,00,18,19,3A,00,!0,47,3A,02,!0,3C,90
1140 DATA 28,27,4F,06,00,11,C0,!0,C5,D5,CD,59,00,3A,06,!0,6F,26,00,29,29,29,29,29,3A,04,!0,5F
1150 DATA 16,00,19,11,00,18,19,EB,E1,C1,CD,5C,00
1160 DATA C1,78,B9,C8,38,0A,05,3A,06,!0,3D,32,06,!0,18,AA,04,3A,06,!0,3C,32,06,!0,18,A0
1170 DATA END

xx00 X1
xx01 Y1
xx02 X2
xx03 Y2
xx04 X3
xx05 Y3
xx06 YT


FORMATO ASSEMBLER
-----------------
LD A,(Y3)
LD B,A
LD A,(Y2)
LD C,A
LD A,(Y1)
CP B
JR NC,7   ; IF Y3>Y1 THEN Y=Y2:LY=Y1 ELSE Y=Y1:LY=Y2
LD A,(Y1)
LD C,A
LD A,(Y2)
LD B,A

LD A,(Y3)
JR NC,04
LD E,A
LD A,B
SUB C
ADD A,E
LD (YT),A

PUSH BC   ; B= Y

LD L,B
LD H,00
ADD HL,HL
ADD HL,HL
ADD HL,HL
ADD HL,HL
ADD HL,HL
LD A,(X1)
LD E,A
LD D,00
ADD HL,DE
LD DE,1800h
ADD HL,DE
LD A,(X1)
LD B,A
LD A,(X2)
INC A
SUB B

JR Z,27     ; SECURITY TEST
LD C,A
LD B,00
LD DE,00C0+ORG   ; BUFFER MEMORY ADDRESS.
PUSH BC
PUSH DE
CALL 0059h
LD A,(YT)
LD L,A
LD H,00
ADD HL,HL
ADD HL,HL
ADD HL,HL
ADD HL,HL
ADD HL,HL
LD A,(X3)
LD E,A
LD D,00
ADD HL,DE
LD DE,1800h
ADD HL,DE
EX DE,HL
POP HL
POP BC
CALL 005Ch

POP BC	; B=Y  C= Y2
LD A,B
CP C
RET Z
JR C,0A
DEC B
LD A,(YT)
DEC A
LD (YT),A
JR AA
INC B
LD A,(YT)
INC A
LD (YT),A
JR A0



flyguille
msx master
Mensajes: 1181
Publicado: Julio 01 2004, 20:54   
tested by Quibus and was reedit to fix some bugs.
 
 







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