00000000: 20 2E 54 49 54 4C 45 20 27 44 45 4D 4F 20 2D 20 | .TITLE 'DEMO - |
00000010: 56 41 52 49 41 4E 54 20 4F 4E 20 53 4E 41 4B 45 |VARIANT ON SNAKE|
00000020: 27 0D 3B 20 55 53 45 20 44 45 46 41 55 4C 54 20 |'.; USE DEFAULT |
00000030: 42 41 53 4D 2E 4C 49 42 20 28 42 41 53 4D 2E 48 |BASM.LIB (BASM.H|
00000040: 49 29 0D 3B 20 44 4F 20 4E 4F 54 20 4C 49 53 54 |I).; DO NOT LIST|
00000050: 20 54 4F 20 44 49 53 4B 20 46 49 4C 45 0D 3B 20 | TO DISK FILE.; |
00000060: 4D 41 59 20 42 45 20 4C 49 53 54 45 44 20 54 4F |MAY BE LISTED TO|
00000070: 20 2F 33 20 4F 52 20 2F 34 0D 20 47 4F 54 4F 20 | /3 OR /4. GOTO |
00000080: 53 4B 49 50 0D 20 2E 49 4E 43 4C 20 27 47 52 31 |SKIP. .INCL 'GR1|
00000090: 27 0D 20 2E 49 4E 43 4C 20 27 52 4E 44 27 0D 53 |'. .INCL 'RND'.S|
000000A0: 4B 49 50 0D 20 47 52 31 20 30 20 2C 20 31 20 2C |KIP. GR1 0 , 1 ,|
000000B0: 20 32 20 2C 20 36 0D 20 46 4F 52 20 4E 44 58 20 | 2 , 6. FOR NDX |
000000C0: 3D 20 30 20 54 4F 20 32 35 34 0D 20 20 4C 44 59 |= 0 TO 254. LDY|
000000D0: 20 4E 44 58 0D 20 20 4C 45 54 20 30 20 2D 3E 20 | NDX. LET 0 -> |
000000E0: 58 41 2C 59 20 2D 3E 20 59 41 2C 59 0D 20 4E 45 |XA,Y -> YA,Y. NE|
000000F0: 58 54 20 4E 44 58 0D 20 4C 45 54 20 30 20 2D 3E |XT NDX. LET 0 ->|
00000100: 20 58 41 2B 32 35 35 20 2D 3E 20 59 41 2B 32 35 | XA+255 -> YA+25|
00000110: 35 0D 20 4C 45 54 20 30 20 2D 3E 20 58 20 2D 3E |5. LET 0 -> X ->|
00000120: 20 59 20 2D 3E 20 4E 44 58 20 2D 3E 20 43 4F 4C | Y -> NDX -> COL|
00000130: 0D 20 4C 45 54 20 31 20 2D 3E 20 44 49 52 58 20 |. LET 1 -> DIRX |
00000140: 2D 3E 20 44 49 52 59 0D 20 57 48 49 4C 45 0D 20 |-> DIRY. WHILE. |
00000150: 20 52 4E 44 20 32 20 2C 20 2E 44 49 52 58 0D 20 | RND 2 , .DIRX. |
00000160: 20 4C 45 54 20 58 20 3D 20 58 20 2B 20 44 49 52 | LET X = X + DIR|
00000170: 58 20 2D 20 31 0D 20 20 49 46 20 58 20 3D 20 31 |X - 1. IF X = 1|
00000180: 36 30 20 54 48 45 4E 20 4C 45 54 20 58 20 3D 20 |60 THEN LET X = |
00000190: 31 35 39 0D 20 20 49 46 20 58 20 3D 20 32 35 35 |159. IF X = 255|
000001A0: 20 54 48 45 4E 20 4C 45 54 20 58 20 3D 20 30 0D | THEN LET X = 0.|
000001B0: 20 20 52 4E 44 20 32 20 2C 20 2E 44 49 52 59 0D | RND 2 , .DIRY.|
000001C0: 20 20 4C 45 54 20 59 20 3D 20 59 20 2B 20 44 49 | LET Y = Y + DI|
000001D0: 52 59 20 2D 20 31 0D 20 20 49 46 20 59 20 3D 20 |RY - 1. IF Y = |
000001E0: 32 30 30 20 54 48 45 4E 20 4C 45 54 20 59 20 3D |200 THEN LET Y =|
000001F0: 20 31 39 39 0D 20 20 49 46 20 59 20 3D 20 32 35 | 199. IF Y = 25|
00000200: 35 20 54 48 45 4E 20 4C 45 54 20 59 20 3D 20 30 |5 THEN LET Y = 0|
00000210: 0D 20 20 52 4E 44 20 32 30 20 2C 20 2E 54 4D 50 |. RND 20 , .TMP|
00000220: 0D 20 20 49 46 20 54 4D 50 20 3D 20 30 20 54 48 |. IF TMP = 0 TH|
00000230: 45 4E 20 52 4E 44 20 32 20 2C 20 2E 43 4F 4C 0D |EN RND 2 , .COL.|
00000240: 20 20 50 4C 4F 54 31 20 43 4F 4C 20 2B 20 31 20 | PLOT1 COL + 1 |
00000250: 2C 20 58 20 2C 20 59 0D 20 20 4C 44 58 20 4E 44 |, X , Y. LDX ND|
00000260: 58 0D 20 20 4C 45 54 20 59 41 2C 58 20 3D 20 59 |X. LET YA,X = Y|
00000270: 0D 20 20 4C 45 54 20 58 41 2C 58 20 3D 20 58 0D |. LET XA,X = X.|
00000280: 20 20 49 4E 43 20 4E 44 58 20 3A 20 4C 44 58 20 | INC NDX : LDX |
00000290: 4E 44 58 0D 20 20 50 4C 4F 54 31 20 30 20 2C 20 |NDX. PLOT1 0 , |
000002A0: 58 41 2C 58 20 2C 20 59 41 2C 58 0D 20 20 4A 53 |XA,X , YA,X. JS|
000002B0: 52 20 24 46 46 45 31 20 3A 20 42 4E 45 20 53 4B |R $FFE1 : BNE SK|
000002C0: 49 50 49 54 0D 20 20 43 4C 4F 53 45 31 20 3A 20 |IPIT. CLOSE1 : |
000002D0: 46 49 4C 45 20 30 20 3A 20 52 45 54 55 52 4E 0D |FILE 0 : RETURN.|
000002E0: 53 4B 49 50 49 54 0D 20 45 4E 44 57 48 49 4C 45 |SKIPIT. ENDWHILE|
000002F0: 0D 20 44 49 4D 20 54 4D 50 20 2C 20 58 20 2C 20 |. DIM TMP , X , |
00000300: 59 20 2C 20 4E 44 58 20 2C 20 44 49 52 58 20 2C |Y , NDX , DIRX ,|
00000310: 20 44 49 52 59 0D 20 44 49 4D 20 43 4F 4C 0D 58 | DIRY. DIM COL.X|
00000320: 41 0D 59 41 3D 58 41 2B 32 35 36 0D 00 00 00 00 |A.YA=XA+256.....|
.TITLE 'DEMO - VARIANT ON SNAKE'.; USE
DEFAULT BASM.LIB (BASM.HI).; DO NOT LIST
TO DISK FILE.; MAY BE LISTED TO /3 OR /
4. GOTO SKIP. .INCL 'GR1'. .INCL 'RND'.S
KIP. GR1 0 , 1 , 2 , 6. FOR NDX = 0 TO 2
54. LDY NDX. LET 0 -> XA,Y -> YA,Y. NE
XT NDX. LET 0 -> XA+255 -> YA+255. LET 0
-> X -> Y -> NDX -> COL. LET 1 -> DIRX
-> DIRY. WHILE. RND 2 , .DIRX. LET X =
X + DIRX - 1. IF X = 160 THEN LET X =
159. IF X = 255 THEN LET X = 0. RND 2
, .DIRY. LET Y = Y + DIRY - 1. IF Y =
200 THEN LET Y = 199. IF Y = 255 THEN L
ET Y = 0. RND 20 , .TMP. IF TMP = 0 TH
EN RND 2 , .COL. PLOT1 COL + 1 , X , Y.
LDX NDX. LET YA,X = Y. LET XA,X = X.
INC NDX : LDX NDX. PLOT1 0 , XA,X , Y
A,X. JSR $FFE1 : BNE SKIPIT. CLOSE1 :
FILE 0 : RETURN.SKIPIT. ENDWHILE. DIM TM
P , X , Y , NDX , DIRX , DIRY. DIM COL.X
A.YA=XA+256.....
×
C64 Image
> CLICK IMAGE PREVIEW FOR FULL MODAL