General Information
Author: Ralf Patschke (pps)
Language: QUICK
Compiler/Interpreter: Quick
Published: November 2009
Here you go with the source of my little gametro for the ABBUC Magazin 73. This is the version, that should be on the disc, but the world is big and turns around, so an older version found it´s way there ;)
Have fun playing and maybe you´ll find some useful code snippets for own projects.
PP´s
Quick-Sourcetext
D2:GAMETRO.QIK
----------------
Length: $1F60
Free : $580B
----------------
BYTE
[
ENDE,B,I
COUNT2,COUNT,LEN,LEN2,LEN3
RU,X,M,FERTIG
ATRACT=77
F0=53274
F1=53270
F2=53271
F3=53272
F4=53272
HSCROL=$D404
CHBAS=756
CHBASE=54281
KEY=764
STRIG0=644
GPRIOR=623
DMA=559
PMBASE=$D407
PCOL0=704
PCOL1=705
PCOL2=706
PCOL3=707
HPOS0=$D000
HPOS1=$D001
HPOS2=$D002
HPOS3=$D003
SIZEP0=$D008
SIZEP1=$D009
SIZEP2=$D00A
SIZEP3=$D00B
HITCLR=$D01E
P0PF=$D004
P1PF=$D005
P2PF=$D006
P3PF=$D007
]
WORD
[
ZAEHL
TEXT=$8E1A
TEXT1=$8E1D
TEXT2=$8E20
TEXT3=$8E23
TEXT4=$8E11
TEXT5=$8E2C
DL=560
BS=88
]
MAIN
DMA=0
POKE(752,1)
CLR($80,8)
CLR($90,8)
CLR($A0,8)
.ZSLOAD
.INTRO
DATA($8E00)
[
128
112,68,$A500
4,4,4,4,4,4,4
240,66,$8200
82,$7500
66,$8100,2,2,130
82,$7400
82,$7400
82,$7400
82,$7400
66,$8100,2,2,130
82,$7600
66,$8200
128,66,$8000,2
65,$8E00
]
DL=$8E00
X=1
RU=1
PMBASE=$90
* LOGO
DATA($A500)
[
0,0,0
1,70,70,70,70,70,70,70,70,70,70,70
3,70,70,70,70,70,70,70,70,70,70,70
70,4
0,0,0
0,0,0
5,6,6,6,6,6,6,6,6,6,6,7
8,9,6,6,6,6,6,6,6,6,6,6
6,10
0,0,0
0,0,0
5,6,6,6,6,6,6,6,6,6,7,11
11,8,9,6,6,6,6,6,6,6,6,6
6,10
0,0,0
0,0,0
5,12,13,14,15,16,17,16,18,19,20,21
22,23,24,25,26,27,28,29,29,30,31,32
33,10
0,0,0
0,0,0
5,34,35,36,37,38,39,40,41,42,43,44
45,46,47,48,49,50,51,52,53,54,55,56
57,10
0,0,0
0,0,0
5,6,6,6,6,6,58,59,11,11,11,11
11,11,11,11,60,61,6,6,6,6,6,6
6,10
0,0,0
0,0,0
5,6,6,6,6,62,63,71,71,71,71,71,71,71
71,71,71,65,66,6,6,6,6,6,6,10
0,0,0
0,0,0
67,68,68,68,68,68,68,68,68,68,68,68
68,68,68,68,68,68,68,68,68,68,68,68
68,69
0,0,0
]
DATA($8200)
[
128,128,128,128,128
128,128,128,128,128
128,128,128,128,128
128,128,128,128,128
128,128,128,128,128
128,128,128,128,128
128,128,128,128,128
128,128,128,128,128
]
*P0
DATA($7000)
[
0
2,2,2,2,2,2,6,4,12,12,56,224
0
]
*P1
DATA($7010)
[
0
160,160,160,160,160,160,176,144,152
152,142,131
0
]
*P2
DATA($7020)
[
0
0,0,0,0,0,0,0,0,0,0,0,128
0
]
HPOS0=50
HPOS1=58
HPOS2=66
SIZEP0=0
SIZEP1=0
SIZEP2=0
POKE(53277,3)
GPRIOR=8
CHBAS=$A0
DATA($7400)
[
0,0,0,0,0,0,0,0,0,0
0,0,0,0,0,0,0,0,0,0
0,0,0,0,0,0,0,0,0,0
0,0,0,0,0,0,0,0,0,0
0,0,0,0,0,0,0,0,0,0
128
0,0,0,0,0,0,0,0,0,0
]
DATA($7500)
[
0,0,0,0,0,0,0,0,0,0
0,0,0,0,0,0,0,0,0,0
0,0,0,0,0,0,0,0,0,0
0,0,0,0,0,0,0,0,0,0
0,0,0,0,0,0,0,0,0,0
0,0,0,0,0,0,0,0,0,202
128,128,128,200,0,0,0,0,0,0
0,0,0,0,0,0,0,0,0,0
0,0,0,77,213,77,0,0,0,0
202,200,0,0,0,0,0,0,0,0
0,0,0,0,0,0,202,200,0,0
0,0,0,0,0,0,0,0,0,0
0,0,77,213,128,213,77,0,0,0
0,0,0,0,0,0,0,0,0,0
0,0,0,0,0,0,0,0,0,202
128,128,200,0,0,0,0,0,0,0
0,0,0,0,0,0,0,0,0,0
128,0,0,0,128,0,0,0,0,0
0,0,0,0,0,0,0,0,0,0
0,77,213,128,213,77,0,0,0,0
]
DATA($7600)
[
0,0,0,0,0,0,0,0,0,0
0,0,0,0,0,0,0,0,0,0
0,0,0,0,0,0,0,0,0,0
0,0,0,0,0,0,0,0,0,0
0,0,0,0,0,0,0,0,0,0
0,0,128,0,0,0,0,0,0,0
0,72,74,0,0,85,128,85,0,0
0,0,0,0,0,0,0,0,0,0
0,0,0,0,0,0,0,0,0,72
128,128,74,0,0,0,0,0,0,0
0,0,0,0,0,0,0,0,0,72
128,128,128,74,0,0,0,0,0,0
0,0,72,128,128,74,0,0,0,0
0,0,0,78,85,128,85,78,0,78
128,78,85,78,128,78,0,0,0,0
0,0,0,0,0,72,128,128,128,74
0,0,0,0,0,0,0,0,0,0
78,128,85,78,78,85,128,78,0,0
72,128,128,74,0,0,0,0,0,72
128,128,128,128,74,0,0,0
0,0,0,0,0,0,0,0,0,0
0,72,74,0,0,0,73,128,79,0
]
DLI(LOGO)
-1
TEXT=$7400
TEXT1=$7400
TEXT2=$7400
TEXT3=$7400
TEXT4=$7500
TEXT5=$7600
COUNT2=4
COUNT=4
LEN=0
LEN2=0
LEN3=0
B=140
.SETPL
DMA=58
BS=$8000
POS(5,0)
?("Trigger druecken zum Starten")
FERTIG=0
REPEAT
.BALKEN
ATRACT=0
UNTIL STRIG0=0
POS(5,0)
?(" ")
ZAEHL=0
VBI(SCROLL)
HITCLR=0
ENDE=0
REPEAT
.KOLLTEST
.BALKEN
ATRACT=0
UNTIL ENDE=1
POS(10,0)
?(ZAEHL,"m geschafft")
POS(10,1)
?("Noch einmal J/N?")
I=0
KEY=255
REPEAT
.BALKEN
IF KEY=1
CLR($80,1)
CLR($90,8)
JUMP(1)
ENDIF
IF KEY=35
I=1
CLR($80,1)
ENDIF
UNTIL I=1
CALL(0,0,0,$E474)
ENDMAIN
INTER SCROLL
BEGIN
.BUTTON
IF COUNT>0
COUNT-
ELSE
COUNT=4
ADD(TEXT4,1,TEXT4)
ADD(TEXT5,1,TEXT5)
LEN3+
LEN2+
ADD(ZAEHL,1,ZAEHL)
ENDIF
IF ZAEHL>2000
IF COUNT2>0
COUNT2-
COUNT2-
ELSE
ADD(TEXT,1,TEXT)
ADD(TEXT1,1,TEXT1)
ADD(TEXT2,1,TEXT2)
ADD(TEXT3,1,TEXT3)
COUNT2=4
LEN+
ENDIF
ELSE
IF COUNT2>0
COUNT2-
ELSE
COUNT2=4
ADD(TEXT,1,TEXT)
ADD(TEXT1,1,TEXT1)
ADD(TEXT2,1,TEXT2)
ADD(TEXT3,1,TEXT3)
LEN+
ENDIF
ENDIF
IF LEN=61
LEN=0
TEXT1=$7400
TEXT2=$7400
TEXT=$7400
TEXT3=$7400
ENDIF
IF LEN2=200
TEXT4=$7500
LEN2=0
ENDIF
IF LEN3=220
TEXT5=$7600
LEN3=0
ENDIF
DLI(LOGO)
ENDVBI
INTER STOP
BEGIN
ENDVBI
INTER LOGO
BEGIN
PUSH
POKE($D400,57)
CHBASE=$A0
F1=$1A
F2=$08
F3=$F6
F4=$14
F0=0
M=0
REPEAT
SYNC(1)
M+
UNTIL M=X
F0=16
IF RU=0
SYNC(1)
F0=20
SYNC(1)
F0=24
SYNC(1)
F0=20
SYNC(1)
F0=16
JUMP(10)
ENDIF
F1=16
F2=16
F3=16
F4=16
SYNC(1)
F0=20
F1=20
F2=20
F3=20
F4=20
SYNC(1)
F0=24
F1=24
F2=24
F3=24
F4=24
SYNC(1)
F0=20
F1=20
F2=20
F3=20
F4=20
SYNC(1)
F0=16
F1=16
F2=16
F3=16
F4=16
-10
FERTIG=1
SYNC(1)
F0=0
F1=$1A
F2=$08
F3=$F6
F4=$14
SYNC(0)
DLI(FARBE)
PULL
ENDDLI
INTER FARBE
BEGIN
PUSH
POKE($D400,58)
CHBASE=224
F3=176
F2=15
SUB(B,66,I)
PCOL0=I
PCOL1=I
PCOL2=I
HSCROL=COUNT
SYNC(1)
DLI(SCR1)
PULL
ENDDLI
INTER SCR1
BEGIN
PUSH
HSCROL=COUNT2
DLI(SCR2)
PULL
ENDDLI
INTER SCR2
BEGIN
PUSH
HSCROL=COUNT
DLI(FARBE2)
PULL
ENDDLI
INTER FARBE2
BEGIN
PUSH
F3=0
F2=10
SYNC(0)
DLI(LOGO)
PULL
ENDDLI
PROC KOLLTEST
BEGIN
IF P2PF=4
ENDE=1
VBI(STOP)
HITCLR=0
ELSE
IF P1PF=4
ENDE=1
VBI(STOP)
HITCLR=0
ELSE
IF P0PF=4
ENDE=1
VBI(STOP)
HITCLR=0
ELSE
HITCLR=0
ENDIF
ENDIF
ENDIF
ENDPROC
PROC SETPL
BEGIN
PLAYER($94,B,14,$7000)
PLAYER($95,B,14,$7010)
PLAYER($96,B,14,$7020)
ENDPROC
PROC BUTTON
BEGIN
IF STRIG0=0
B-
.SETPL
B-
.SETPL
B-
.SETPL
ELSE
B+
.SETPL
ENDIF
ENDPROC
PROC ZSLOAD
BEGIN
CLOSE(1)
OPEN(1,4,0,"D1:LOGO.FNT)
BGET(1,1024,$A000)
CLOSE(1)
ENDPROC
PROC INTRO
BEGIN
POKE(712,148)
POKE(710,0)
POKE(709,10)
CLR($A7,2)
DATA($A700)
[
112,112,112,66,$A800,240
66,$AA00,2,2,2,2,2,2
112,66,$A828
0,2,0,2,0,2,0,2,0,2,0,2,112,2
112,112,112,2
65,$A700
]
DATA($AA00)
[
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
128,128,128,128,0,72,128,128,74
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
0,0,0,128,0,128,200,202,128
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
0,0,0,128,0,0,0,0,128
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
0,0,72,200,0,0,0,128,89
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
0,72,200,0,0,0,0,0,128
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
0,128,0,0,0,128,74,72,128
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
0,128,0,0,0,202,128,128,200
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
]
DLI(EINF)
BS=$A800
DL=$A700
POS(0,0)
?(" WELCOME TO THIS ABBUC MAG");
?("AZINE! ")
POS(0,1)
?(" THIS TIME WITH A NEW STYLE ");
?("OF INTRO. ")
POS(0,2)
?("---- YOU'LL BE WATCHING A G");
?("AMETRO ----");
POS(0,3)
?(" GREETINGS FLY TO RESERVOI");
?("R GODS ")
POS(0,4)
?(" WHO INSPIRED ME MAKING TH");
?("IS :-) ")
POS(0,5)
?(" & TO ALL THE REST OF Y");
?("OU ")
POS(0,6)
?("-----------------------------");
?("-----------");
POS(0,7)
?(" SPECIAL GREETINGS TO MY GIRLF");
?("RIEND!!!! ");
POS(0,8)
?(" (p)12. - 17. July in 2003 b");
?("y PP's ")
POS(0,9)
?(" NOW PRESS THE BIG KEY!!!")
DMA=34
KEY=255
REPEAT
UNTIL KEY=33
DMA=0
POKE(712,0)
ENDPROC
INTER EINF
BEGIN
PUSH
ATRACT=0
F3=148
SYNC(57)
F3=0
SYNC(0)
PULL
ENDDLI
PROC BALKEN
BEGIN
IF FERTIG=1
FERTIG=0
IF RU=1
IF X<73
X+
ELSE
RU=0
ENDIF
ELSE
IF X>1
X-
ELSE
RU=1
ENDIF
ENDIF
ENDIF
ENDPROC