i write this for one msx-friend but i can't test because i are at work... please somebody can test? (Development MSX Fora)MSX Resource Center MSXdev 2008 - MSX1 development bonanza!           
            
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 130 gasten en 2 MSX vrienden online

Je bent een anonieme bezoeker.
 

MSX Fora


MSX Fora

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

Schrijver

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

flyguille
msx master
Berichten: 1183
Geplaatst: 01 Juli 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
Berichten: 1183
Geplaatst: 01 Juli 2004, 20:54   
tested by Quibus and was reedit to fix some bugs.
 
 







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