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 }}}