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