Posted Thu Feb 9, 2012 1:57 PM
Posted Thu Feb 9, 2012 5:27 PM
Posted Thu Feb 9, 2012 11:48 PM
Scans the selected joystick. For joystick #1 use a unit# of 0. For joystick 2
use a unit# of 1. The returned value is a bit code which can be decoded as
follows:
1=Fire
2=Left
4=Right
8=Down
16=Up
Since each direction has its own bit, combinations are possible: for
example, UP+LEFT+FIRE=19Edited by JonnyBritish, Fri Feb 10, 2012 12:01 AM.
Posted Fri Feb 10, 2012 2:01 AM
JonnyBritish, on Thu Feb 9, 2012 11:48 PM, said:
Posted Fri Feb 10, 2012 2:12 AM
Posted Fri Feb 10, 2012 3:42 AM
HEX CODE: JOYST C054 0221 0006 06C1 020C 0024 30C1 020C 0006 3541 06C1 0541 0241 001F C501 020C 8328 C80C 83D6 0300 0002 0300 0000 ;CODE DECIMAL
Posted Fri Feb 10, 2012 3:54 AM
Posted Fri Feb 10, 2012 5:31 AM
Posted Fri Feb 10, 2012 8:49 AM
Posted Fri Feb 10, 2012 8:58 AM
Posted Fri Feb 10, 2012 9:00 AM
Posted Fri Feb 10, 2012 10:07 AM
kl99, on Fri Feb 10, 2012 5:31 AM, said:
Posted Mon Feb 20, 2012 4:43 PM
Edited by Vorticon, Mon Feb 20, 2012 4:48 PM.
Posted Mon Feb 20, 2012 8:43 PM
Posted Mon Feb 20, 2012 10:03 PM
Posted Mon Feb 20, 2012 11:19 PM
Posted Tue Feb 21, 2012 12:04 AM
Tursi, on Mon Feb 20, 2012 11:19 PM, said:
Posted Tue Feb 21, 2012 3:05 AM
HEX CODE: JOYST C054 0221 0006 06C1 020C 0024 30C1 020C 0006 3541 06C1 0541 0241 001F C501 020C 8328 C80C 83D6 0300 0002 0300 0000 ;CODE DECIMAL FORGET segments 10 CONSTANT segments \ number of snake segments 50 CONSTANT obstacles \ number of obstacles 152 CONSTANT wall \ wall character 144 CONSTANT sBody \ snake body character 42 CONSTANT obstacle \ obstacle character 8 CONSTANT bGround \ background character CREATE charArray segments CELLS ALLOT CREATE posArray segments CELLS ALLOT \ segment positions CREATE HArray segments CELLS ALLOT \ segment horiz direction CREATE VArray segments CELLS ALLOT \ segment vert direction 0 VALUE segAddr \ address of segment 0 VALUE HDir \ segment H direction 0 VALUE VDir \ segment V direction 1 $83D6 ! \ prevent screen blanking HEX CREATE wallData 22FF , 88FF , 22FF , 88FF , 22FF , 88FF , CREATE BGData 8142 , 2418 , 1824 , 4281 , 8142 , 2418 , 1824 , 4281 , wallData VALUE wallP \ pointer to wall data 0 VALUE wallOS \ wall data offset BGData VALUE BGP \ pointer to background data 0 VALUE BGOS \ background data offset : UDGs DATA 8 390F 7FFF FF7F 0F39 9CF0 FEFF FFFE F09C sBody DCHAR DATA 4 8040 2010 0804 0201 bGround DCHAR [ wall 8 * 800 + LITERAL ] wallData 8 VMBW [ bGround 8 * 800 + LITERAL ] BGData 8 VMBW ; UDGs DECIMAL : initColors 18 7 0 COLOR 19 11 6 COLOR 1 13 0 COLOR ; : border PAGE 0 0 bGround [ 32 24 * LITERAL ] HCHAR 0 0 wall 32 HCHAR 0 31 wall 24 VCHAR 23 0 wall 32 HCHAR 0 0 wall 24 VCHAR ; : initArrays ( -- ) segments 0 DO 1 charArray I CELLS + ! 1 HArray I CELLS + ! 32 VArray I CELLS + ! LOOP ; : initPos ( -- ) segments 0 DO 33 I + posArray I CELLS + ! LOOP ; : renderObstacles ( -- ) 19 1 DO 4 0 DO J 29 RND 1+ [ obstacle LITERAL ] 1 HCHAR LOOP LOOP ; : moveWall [ wall 8 * $800 + LITERAL ] wallData wallOS + 8 VMBW wallOS 1+ 4 MOD TO wallOS ; : moveBG [ bGround 8 * $800 + LITERAL ] BGData BGOS + 8 VMBW BGOS 1+ 8 MOD TO BGOS ; : moveSegments ( -- ) segments 1- FOR charArray I CELLS + @ IF posArray I CELLS + TO segAddr HArray I CELLS + @ TO HDir [ bGround LITERAL ] segAddr @ V! segAddr @ HDir + V@ DUP [ bGround LITERAL ] = IF DROP HDir segAddr +! ELSE sBody = IF HDir segAddr +! ELSE HDir NEGATE HArray I CELLS + ! HDir 0> IF 144 ELSE 145 THEN TO sBody segAddr @ [ 21 32 * 2- LITERAL ] >= IF VArray I CELLS + @ TO VDir VDir 0> IF VDir NEGATE VArray I CELLS + ! THEN ELSE VArray I CELLS + @ TO VDir segAddr @ [ 63 32 + LITERAL ] < IF VDir 0< IF VDir NEGATE VArray I CELLS + ! THEN THEN THEN VDir segAddr +! THEN THEN sBody segAddr @ V! THEN NEXT ; : mainLoop TRUE BEGIN moveSegments moveWall NOT DUP IF moveBG THEN 0 JOYST 1 = UNTIL ; : RUN ( -- ) 1 GMODE 1 SCREEN initColors initPos initArrays border renderObstacles mainLoop DROP ;
Posted Tue Feb 21, 2012 3:10 AM
Posted Tue Feb 21, 2012 8:26 AM
Posted Tue Feb 21, 2012 8:31 AM
Willsy, on Tue Feb 21, 2012 3:05 AM, said:
Posted Tue Feb 21, 2012 10:14 AM
Posted Wed Feb 22, 2012 12:49 AM
Lee Stewart, on Tue Feb 21, 2012 10:14 AM, said:
0 members, 1 guests, 0 anonymous users