Jump to content

rocky007

Members
  • Posts

    412
  • Joined

  • Last visited

  • Days Won

    1

Posts posted by rocky007

  1. 1  DIM O(50,2)::L$=" R2@2a2R2@2a2@(R2a2R<@2R(@2R2a2R.@<@.@<"::T=0::FOR I=2 TO LEN(L$) STEP 2 ::O(I/2,1)=ASC(SEG$(L$,I,1))::O(I/2,2)=(ASC(SEG$(L$,I+1,1))-50)*3::NEXT I
    10 DIM W(3)::W(0)=2::W(1)=13::C$=RPT$("0",16)::CALL CHAR(132,"FFFF7F7F27000000"&C$&"FFFFFEFEFCFC7810"&C$,136,C$&"000000277F7FFFFF"&C$&"1078FCFCFEFEFFFF")
    12 W(2)=3::F$=RPT$("F",16)::CALL CHAR(104,F$,112,F$,120,F$,140,"000043633F3F0E00"&C$&"0000C0E0FEF00000"):: CALL COLOR(10,13,2,11,3,2,12,4,2)
    15 CALL CHAR(124,"FF9CB9F3E7CE9CB9F3E7CE9CB9F3E7FFFFE7CF9D3973E7CF9D3973E7CF9D39FF",128,"F0F0F0F00F0F0F0F",129,"CCCC3333CCCC3333")
    16 CALL SCREEN(2):: MP=14::CALL CLEAR::S=24::FOR Y=0 TO 2:: CALL HCHAR(1+Y*2,1,104+Y*8,64):: CALL HCHAR(23-Y*2,1,104+Y*8,64)::K=-(Y=2)*10
    17 FOR I=1 TO 4::  CALL SPRITE(#S,132,W(Y),1+Y*16,K+I*29,0,-55+Y*16,#S-1,136,W(Y),161-Y*16,I*32,0,-45+Y*15)::S=S-2:: NEXT I:: NEXT Y
    19 CALL MAGNIFY(4)::CALL SPRITE(#28,140,16,84,32):: CALL HCHAR(7,1,128,320+64)::CALL HCHAR(8,1,129,320)::CALL HCHAR(9,1,32,320-64)
    30 CALL COLOR(13,13,4)::CALL JOYST(1,X,Y):: CALL MOTION(#28,-Y*2,X):: IF K=19 THEN K=1:: D=D+1.1::T=T+1::MP=MP-2
    34 CALL COLOR(13,4,13)::T=T+1::IF T=7 THEN T=0:: K=K+1 :: CALL SPRITE(#Z+25,124,MP,O(K,1),256,O(K,2)*D,-9)::Z=(Z+1)*-(Z<2)
    35 CALL POSITION(#28,XX,YY):: CALL COINC(ALL,B):: IF B OR XX<57 OR XX>120 OR YY<0 THEN CALL SOUND(100,-5,0)::DA=DA+1:: IF DA=10 THEN PRINT "SCORE ";(K*10)+(D*1000)::END ELSE 30 ELSE 30

     

    • Like 15
    • Thanks 1
  2. 1 CALL CLEAR::CALL MAGNIFY(4)::CALL SCREEN(2)::FOR Y=18 TO 24::FOR X=1 TO 32::CALL HCHAR(Y,X,INT(RND*8)+72)::CALL HCHAR(18,X,64+INT(SIN(X/3)*4)+4)::NEXT X::NEXT Y
    2 CALL CHAR(136,"000306060627FFFF7F7F270707030000C0E3AFBFBFFC74F0F0E0C080C0E060C0",128,"60F0F060",132,"101",41,RPT$("0",48),40,"3C7E7FFFFFFF7E36")
    3 P=150:: DEF K=ASC(SEG$("FHGGHWEMNCJDFCLGNLHHCIHCJECKCN",O,1))-65::FOR L=1 TO 10:: O=O+1::S=K::O=O+1::X=K::O=O+1::Y=K:: IF L>3 THEN CALL COLOR(S,X,Y) ELSE GOSUB 300
    4 NEXT L::H=5::DEF F=INT(RND*12)::FOR I=104 TO 111::D$=D$&"FF"::A$,B$,C$=""::FOR J=1 TO 16::A$=A$&STR$(INT(RND*9))::B$=B$&STR$(1+INT(RND*6))&"F"::C$=C$&"F"&STR$(4+INT(RND*3)*2)
    5 CALL SPRITE(#1,136,16,152,128,#J+12,132,8,1,5+(F*22),120,-F*2)::NEXT J::CALL CHAR(I-40,D$,I-16,B$,I-24,C$,I-32,A$,I,A$,I-8,A$)::NEXT I
    6 ACCEPT AT(1,1) BEEP :A$:: CALL COLOR(5,5,11)::CALL CHAR(140,RPT$("F0",8))::CALL SPRITE(#2,140,2,156,141)
    50 G=RND:: IF U>H THEN CALL SPRITE(#M+3,128,9,50,P,5,0)::U=0::H=H-.2::M=(M+1)*-(M<9):: IF G<.5 THEN P=P+32 ::P=MIN(200,P) ELSE P=P-32 ::P=MAX(30,P)
    51 U=U+1::CALL JOYST(1,X,Y)::X=X*3::CALL MOTION(#1,0,X,#2,0,X)::CALL POSITION(#V+3,D,E,#1,XX,YY)::IF G>.9 THEN CALL COLOR(1,2,16,1,16,2)
    52 CI=E-YY::IF D>152 THEN CALL DELSPRITE(#V+3):: V=(V+1)*-(V<9):: IF CI>-2 AND CI<32 THEN CALL SOUND(50,-7,0)::GOTO 50 ELSE PRINT"  GAME OVER, SCORE ";(5-H)*100 ::END ELSE 50
    300 FOR I=0 TO S:: FOR J=0 TO 6.3 STEP 0.05 ::PX=X+COS(J)*I+RND:: PY=Y+SIN(J)*I+RND::CALL HCHAR(PX,PY,((104+INT(RND*8)+(I=S)*7)))::IF RND>.9 AND I<S THEN CALL HCHAR(PX,PY,40)
    310 NEXT J:: NEXT I::FOR I=X TO X+S::DISPLAY AT(I+S+1,Y-2) SIZE(2): CHR$(INT(RND*8)+88)&CHR$(INT(RND*8)+82)::NEXT I::RETURN

     

     

    • Like 14
    • Thanks 1
  3. 
        1 CALL CHAR(112,"001E3369737F7777007777777F7F7F3E003CE6D3E7FF777700777777FFFFFF3E")::CALL SCREEN(2)::W=1::FOR I=2 TO 10::CALL COLOR(I,I+2,2)::NEXT I
        3 CALL CHAR(58,"0000FFFFFFFF",108,"071F3F3F7E7CF8F8F8F8FC7E7F3F1F07C0C0C0C03F3E3C00003C3E3FC0C0C0C0",128,"FFFF",130,"FFFF",42,"000000007E7E7E7E")::L=3
        4 CALL DELSPRITE(ALL)::V=V+1::SC=SC+(V*L)::CALL CLEAR:: CALL MAGNIFY(4):: DIM P(22,34):: CALL SPRITE(#9,112,16,161,50):: DISPLAY AT(24,1):"LEVEL";V;"  LIVE";L;" SCORE";SC                        
        7 FOR I=5 TO 24 STEP 5 :: CALL HCHAR(I,1,58,32)::FOR X=3 TO 31 STEP 2::CALL HCHAR(I+2,X,46)::CALL HCHAR(2,X,46)::NEXT X::CALL HCHAR(I-3,3,42)::NEXT I
        10 FOR I=1 TO 4::CALL SPRITE (#10+I,128,2,-5+I*40,I*60,0,I*4,#2+I,108,9+I,1+(I-1)*40,I*50,0,(V*10)*W) :: W=(W=1)-(W=-1)::NEXT I
        51 CALL JOYST(1,X,Y):: IF Y<>0 THEN CALL POSITION(#9,X1,Y1)::S=(X1/40)-(Y=-4)::CALL POSITION(#10+S,X2,Y2):: D=Y2-Y1:: IF D>-20 AND D<30 THEN CALL LOCATE(#9,X1-(40*(Y/4)),Y1)
        53 CALL MOTION(#9,0,X*4)::CALL POSITION(#9,X,Y):: X1=INT(2+X/8):: Y1=1+INT((Y+16)/16)*2::Y1=MIN(32,Y1)::CALL HCHAR(X1,Y1,32,4)
        80 IF P(X1,Y1)=0 THEN P(X1,Y1),P(X1,Y1+2)=1::CALL SOUND(20,800,0,1600,2)::M=M+1::IF Y1=3 AND ((X1=17) OR (X1=12) OR (X1=7)) THEN K=1 ELSE IF M=49 THEN SC=SC+(V*L):: GOTO 4
        90 CALL COINC(ALL,A)::IF A AND K=0 THEN CALL SOUND(150,-7,0)::CALL LOCATE(#9,161,50)::L=L-1::CALL HCHAR(24,18,ASC(STR$(L))):: IF L=0 THEN END
        100 IF K=0 THEN 51 ELSE K=K+1::IF K=2 THEN CALL COLOR(#3,14,#4,14,#5,14,#6,14):: GOTO 51 ELSE IF K=10 THEN CALL COLOR(#3,10,#4,11,#5,12,#6,13)::K=0:: GOTO 51 ELSE 51

     

     

    • Like 8
    • Thanks 1
  4. 
        1 CALL CHAR(136,"0001030301090E061B191F1F08000000F0BCEECEFE9C7870FEFEE7F360787870",140,"2F7F3F2FFFFF33073D3F1D0903030F0F008080C08098FCFCC0E0FEFE86068080")
        2 CALL CHAR(128,"0F3D77737F391E0E7F7FE7CF061E1E0E0080C0C080907060D898F8F810000000",132,"0001010301193F3F03077F7F61600101F4FEFCF4FFFFCCE0BCFCB890C0C0F0F0")
        3 CALL CHAR(120,"0000000100011978F97F01065FEBFF7C03009EFFD7EBF7FFDFFFFEF070808000",124,"FFFFDE78B0606080",126,"E0C",33,"FF101010FF808080",125,"")::L=10
        4 CALL COLOR(1,9,16)::CALL CLEAR::CALL HCHAR(11,1,33,448):: CALL HCHAR(15,1,32,160)::CALL VCHAR(1,9,32,128)::CALL VCHAR(1,20,32,128)   ::Z=3                                                      
        5 DIM U(2),A(2),X(32),B(32),Q(16):: U(0)=49::U(1)=121::S=1::A(1)=1::SC=0:: CALL SPRITE(#27,120,2,81,43,#28,124,2,81,75)
        6 CALL MAGNIFY(4) ::FOR I=1 TO 8 ::X(I),X(17-I)=(I*32)-31:: B(I),B(I+8)=2^(I-1):: CALL SPRITE(#I,128,2,192,256,#I+8,128,2,192,256):: NEXT I
        7 FOR I=S TO S+7 :: T=1-T::IF (A(P) AND B(I))>0 THEN Q(I)=1::CALL PATTERN(#I,(P*8)+128+T*4)::CALL LOCATE(#I,U(P),X(I) ) ELSE Q(I)=0:: CALL LOCATE(#I,192,256)
        8 NEXT I :: A(P)=A(P)*2 ::A(P)=A(P)+(((A(P) AND 8)<>8)*((INT(RND*L))=1))::CALL SOUND(20,960,0)::CALL JOYST(1,XX,YY)::IF A(P)>255 THEN A(P)=A(P)-256 
        9 IF XX<>0 AND YY<>0 THEN Y1=81-((YY=-4)*72)::X1=43-((XX=4)*90)::CALL LOCATE(#27,Y1,X1,#28,Y1,X1+32)::Z=3-((YY=-4)*11)+((XX=4)*3)*(-YY/4)
        10 P=1-P::S=(S=1)*-8+1:: QT=Q(S+2)+Q(S+5)::IF QT>0 THEN END ELSE IF Q(Z)=1 THEN CALL SOUND(50,1300,0)::Q(Z)=0::SC=SC+4::L=MAX(2,L-.1)::DISPLAY AT(2,20):SC::GOTO 7 ELSE 7
    
    
    

     

    • Like 10
    • Thanks 1
  5. 
    1 Z$="C0CE8F0630783307"::CALL CHAR(120,"8587FD858587FD85FFC3FD858587FD85",116,Z$&Z$&RPT$("0",32)):: CALL COLOR(12,2,11)::CALL MAGNIFY(3):: CALL CLEAR::B,SC=0
    2 Z$="003E7FFFFFFF7E3C"::CALL CHAR(128,"FF010101C3E77F1F0101000003000000FF80F0F8FCE2E2FFFFFFFE24FF",112,"007E3C183C3C1800"&RPT$("0",48),132,Z$&RPT$("0",16)&Z$)
    3 D=28::LV=LV+1::DISPLAY AT(1,1):"LEVEL";LV;RPT$(" ",8);"SCORE ";SC::INI=0::DIM A(32)::I=3::CALL SCREEN(5)::TP=17
    11 IF I<31 THEN A(I)=23-INT(RND*7):: CALL VCHAR(A(I),I,121):: CALL VCHAR(A(I)+1,I,120,24-A(I))::G=I/4::CALL SPRITE(#16+G,132,16,G*9,I,0,-5):: I=I+1:: GOTO 11 ELSE 14
    14 CALL POSITION(#27,X,Y):: IF B=1 THEN CALL SOUND(1,900-Z,0)::CALL POSITION(#28,Z,W):: P=A(INT(W/8)+1)*8::IF Z>P-32 THEN CALL DELSPRITE(#28)::B=0::IF P<>200 THEN 50
    15 CALL KEY(0,K,S):: IF K=32 AND B=0 THEN CALL SPRITE(#28,112,14,X+16,8+INT(Y/8)*8,20,0)::B=1 ELSE IF Y>220 THEN CALL LOCATE(#26,X+9,1,#27,X+8,1)
    19 IF INI=0 THEN CALL SPRITE(#27,128,2,17,1,0,5+LV*2,#26,128,4,18,2,0,5+LV*2):: INI=1::GOTO 14 ELSE IF X+16>TP*8 THEN END ELSE GOTO 14
    50 CALL SOUND(150,-7,0)::S=1::SC=SC+100::M=6::D=D-1::DISPLAY AT(1,17):"SCORE ";SC:: A(INT(W/8)+1)=25::FOR I=P TO 192 STEP 8:: CALL HCHAR(I/8,1+W/8,32)::M=M-.5
    61 H=2-RND*3::CALL SPRITE(#S,116,15,I,W,M,H,#S+1,116,2,I,W,M,H)::S=S+2:: CALL POSITION(#27,X,Y):: IF Y>220 THEN CALL LOCATE(#26,X+9,2,#27,X+8,1)
    62 NEXT I :: FOR I=16 TO 1 STEP -1 :: CALL DELSPRITE(#I):: NEXT I:: FOR I=3 TO 30 :: TP=MIN(TP,A(I)) :: NEXT 

     

     

    • Like 14
    • Thanks 1
  6. 
    1 Z$="KKJMMNMMPPPNSKKJPMLNPPLQMiKKLKMKQOMOQNQ7KJKMLOMQNSNKK#JKMKRMMMRLN#_KKLLMMNNOLK"::DIM H(78),M(26),N(26)::FOR I=1 TO 78::H(I)=ASC(SEG$(Z$,I,1))-75::NEXT I
    2 CAll CLEAR::CALL COLOR(1,16,2, 2,10,2, 3,9,10, 4,7,9):: CALL CHAR(33,"1"):: FOR i=1 to 50::CALL HCHAR(INT(RND*23)+1,INT(RND*32)+1,33):: NEXT I:: L=1
    3 FOR I=0 TO 7 :: A$=RPT$("00",I)&RPT$("FF",8-I)::CALL CHAR(40+I,A$,48+I,A$,56+I,A$):: NEXT I:: Z$="084C2A6E195D3B7F"::Y$="0123456789ABCDEF"::S,P,C=64:: CALL SCREEN(2)
    4  FOR J=1 TO 4::READ A$::FOR I=1 TO 32 STEP 2::B$=B$&SEG$(Z$,POS(Y$,SEG$(A$,I+1,1),1),1)&SEG$(Z$,POS(Y$,SEG$(A$,I,1),1),1) ::NEXT I::CALL CHAR(C,A$&B$)::C=C+4::B$=""::NEXT J
    5 Y=150::FOR J=40 to 56 STEP 8::FOR I=1 TO 32:: X=INT(Y/8):: C=Y-(X*8):: Y=Y+INT(RND*3)-1::CALL VCHAR(X,I,J,24-X)::CALL HCHAR(X,I,C+J)::NEXT I::Y=Y+4::NEXT J::CALL MAGNIFY(3)
    6 CALL DELSPRITE(ALL)::CALL SAY("SCREEN "&STR$(L))::L=L+1:: CALL SPRITE(#28,64,12,134,1)::Z=Z+1::S=H(Z)::Q=H(Z+1)::W=H(Z+2):: Z=Z+3::F=INT(RND*4)*4::FOR I=1 TO 4
    7 CALL SPRITE(#I,64+F,16-L,H(Z)*32+16,H(Z+1)*32)::Z=Z+2:: NEXT I::FOR I=1 TO 26:: T=INT(SIN(I/2)*H(Z+1))::M(I)=T*(H(Z)<>1) :: N(I)=T*(H(Z)<>2) ::NEXT I::I=0::Z=Z+1
    8 I=I+1::CALL MOTION(#1,Q+M(I+3)*W,S+N(I),#2,Q+M(I+6),S+N(I+3),#3,Q+M(I+9)*W,S+N(I+6),#4,Q+M(I+12),S+N(I+9))::CALL COINC(ALL,P)::IF I=13 THEN I=0
    9 CALL JOYST(1,Y,x)::SX=MIN(SX+2-X,16)::SY=SY+Y:: CALL MOTION(#28,SX*2,SY*2):: CALL POSITION(#28,Y,X)::IF X>225 AND L<8 THEN SX,SY=0:: GOTO 6 ELSE IF P=-1 OR L=7 OR Y>150 THEN END ELSE 8
    10 DATA 0010080403070F7F0F07030408100000,010103070F0F0703070F0C3C38383030,00000000073F64FFFF643F0700000000,44AA110044AA110044AA110044AA1100

     

    • Like 10
    • Thanks 1
  7. 
    10 DIM TR(3)::DIM T$(5):: T$(1)="7252720027252700"::T$(2)="C949C9009C949C00"::T$(3)="2725270072527200"::T$(4)="9C949C00C949C900"::G,L,TS=0::S=36
    20 CALL SPRITE(#28,128,7,50,50):: CALL CHAR(128,"18BCFEFDFDFEBC08"&RPT$("0",48)):: CALL CLEAR :: SC=1::CALL HCHAR(1,1,128,29)::V=29::SR=0
    30 FOR I=1 TO 3 :: CALL VCHAR(1,I,129,24):: CALL VCHAR(1,33-I,129,24)::NEXT I:: CALL MAGNIFY(4)::R1,R2=8::CALL SCREEN(2)::FOR C=36 TO 108 STEP 4
    40 A$,B$="":: FOR I=1 TO 16:: R1=R1+INT(RND*3)-1::R2=R2+INT(RND*3)-1 ::IF R1>7 THEN R1=7 ELSE IF R1<0 THEN R1=0 ELSE IF R2>7 THEN R2=7 ELSE IF R2<0 THEN R2=0
    50 A$=A$&SEG$("0102050A1F2F5FAF",1+R1*2,2)::B$=B$&SEG$("80C0E0F0F8FCFEFF",1+R2*2,2):: NEXT I:: CALL CHAR(C,A$&B$) :: NEXT C:: CALL COLOR(1,8,3,13,15,2)
    60 FOR X=1 TO 3::TR(X-1)=3::FOR I=1 TO 6:: CALL SPRITE(#I+L,S,2,8+(I-1)*32,I*2+X*64,0,-5)::S=S+4::NEXT I::L=L+6:: NEXT X :: CALL COLOR(#3,1,#9,1,#15,1)
    70 CALL MOTION(#28,G,0)::CALL JOYST(1,X,Y):: G=G+5-(Y*3)::Q=TR(TS)+(TS*6)::CALL POSITION(#Q,Z,X,#28,Z1,X1)::IF G>60 THEN G=60 ELSE IF G<-60 THEN G=-60
    80 IF (X>40 AND X<56) AND (Z1<Z-4 OR Z1>Z+20) THEN CALL HCHAR(1,V,129)::V=V-1::CALL SOUND(100,-6,0)::IF V=3 THEN PRINT "GAME OVER, SCORE:";SR;" Kb"::END
    90 IF (X>245) THEN CALL COLOR(#Q,2) ELSE  CALL CHAR(32,T$(SC))::SC=SC+1:: IF SC=5 THEN SC=1 ::SR=SR+1 :: GOTO 70 ELSE 70
    100 IF SR>512 THEN PRINT "WIN! AMIGA REBOOT ! "::END ELSE K=INT(RND*4)+2::CALL COLOR(#K+(TS*6),1):: TR(TS)=K::TS=TS+1::IF TS=3 THEN TS=0:: GOTO 70 ELSE 70

     

    • Like 13
    • Thanks 1
  8. 
    10 A$="D2FE9EFBFFBF5B4FF":: B$="66283A7E7E3A2866"&RPT$("0",48) ::  CALL MAGNIFY(4) ::CALL CLEAR::CALL COLOR(4,13,3,2,5,6,12,16,15) :: L=3:: X=16:: Y=1
    20 D$=RPT$("3F",5)&RPT$("7F",3)::E$=RPT$("FE",4)&RPT$("FC",4) :: CALL SCREEN(15) ::CALL VCHAR(1,32,132,L):: CALL CHAR(63,A$,132,B$,128,D$&D$&E$&E$)::S=15
    30 FOR I=2 TO 25:: DISPLAY AT(I-1,1) :RPT$(".",12)&"??"&RPT$("  | ",3)&"??":: IF I<14 THEN CALL SPRITE(#I,128,11,1,1) ELSE IF I<23 THEN CALL SPRITE(#I,132,INT(I-12),1,1,S/2,0)
    40 CALL LOCATE(#I,Y,X) :: Y=Y+64:: IF X<128 AND Y<>97 AND Y<>193 THEN Y=Y-32 ELSE IF Y=193 THEN Y=1:: X=X+32:: IF X=112 THEN X=X+17
    50 NEXT I:: FOR I=2 TO 13 STEP 8:: CALL MOTION(#I+1,S,0,#I,S,0,#I+3,S,0,#I+2,S,0)::NEXT I:: CALL MOTION(#17,-S,0,#18,-S,0,#19,-S,0,#6,-S,0,#7,-S,0)
    60 SC=SC+PT::PT=100::CALL MOTION(#8,-S,0,#9,-S,0):: XX=1::YY=1::CALL SPRITE(#1,132,2,XX,YY) :: D=0:: IF L=0 THEN PRINT "BYE, YOUR SCORE:";SC ::END
    70 IF JX<>0 OR JY<>0 THEN CALL POSITION(#1,YY,XX) ::XX=XX+(JX*4) :: YY=YY-(JY*4) :: IF XX>0 AND YY<192 AND YY>0 THEN CALL LOCATE(#1,YY,XX)::CALL SOUND(1,910,0) :: IF XX=225 THEN D=2
    80 CALL COINC(ALL,A)  :: PT=PT-1 :: IF A=0 AND (XX=113 OR XX=1) THEN CALL MOTION(#1,0,0) ELSE IF (A=0 AND XX<113) THEN D=D+1
    90 P=INT((XX-8)/32)+1 :: IF A=-1 AND P>3 THEN D=D+1 ELSE IF A=-1 AND P>0 AND P<4 THEN IF P=2 THEN MY=-S :: CALL MOTION(#1,MY,0)ELSE MY=S :: CALL MOTION(#1,MY,0)
    100 CALL JOYST(1,JX,JY) :: IF D=0 THEN 70 ELSE IF D>0 AND D<3 THEN CALL HCHAR(L,32,32)::L=L-1::CALL SOUND(10,110,0)::GOTO 60 ELSE CALL SOUND(10,2000,0)::GOTO 60 

     

     

    • Like 15
    • Thanks 1
  9. 
    1 DIM Y(48),YY(8):: FOR I=0 TO 10:: Y(I)=(I*16)+1:: Y(20-I)=Y(I)::NEXT I :: CALL MAGNIFY(4) :: CALL CLEAR ::CALL SPRITE(#8,136,5,176,1):: CALL SCREEN(2)
    2 CALL CHAR(65,"00000000000000FF1818181818181818FF81FF81FF81FF81"):: FOR I=1 TO 32:: READ A:: CALL VCHAR(3,I,A+60,22)::  NEXT I :: T=0 ::  CALL COLOR(5,10,2)
    3 CALL CHAR(132,"1F3E7C7E7F7F7F55555555555555557FF0F87CFCFCFCFC5454545454545454FC"):: FOR I=1 TO 7 :: YY(I)=INT(RND*19):: CALL SPRITE(#I,132,8,Y(YY(I)),I*32-18) :: NEXT I
    4 CALL CHAR(136,"1C3E2A367F3E3E22000000000000000000000000000000000000000000000000") :: A=1:: BX=1::BY=176::BK=241::BXBUF=0
    5 CALL JOYST(1,JX,JY) :: Z=BX+JX*2 :: IF (JY>0) AND (BX=BK) THEN BY=BY-16 :: BK=242-BK :: CALL SOUND(1,560,10) ELSE IF Z>0 AND Z<242 THEN BX=Z
    6 C=INT((BX+23)/32):: TP=Y(YY(C)) ::IF C>0 AND C<8 AND BY>TP-7 AND BY<TP+31 THEN CALL COLOR(5,10,5)::CALL COLOR(5,10,2)::CALL SOUND(1,220,5)::T=T+100
    7 IF BX=241 AND BY=16 THEN CALL CLEAR ::PRINT "YOU WIN !!! YOUR TIME :";T ::END  ELSE YY(A)=YY(A)+1  :: IF YY(A)>19 THEN YY(A)=0
    8 CALL LOCATE(#A,Y(YY(A)),(A*32)-18) ::  A=A+1 :: IF A>7 THEN A=1 
    9 CALL LOCATE(#8,BY,BX):: T=T+1 :: IF BX<>BXBUF THEN CALL SOUND(1,1950,1):: BXBUF=BX ::GOTO 5 ELSE 5
    10 DATA 7,7,5,6,5,5,5,6,5,5,5,6,5,5,5,6,5,5,5,6,5,5,5,6,5,5,5,6,5,5,7,7

     

    • Like 6
    • Thanks 2
  10. 1 hour ago, senior_falcon said:

    This does it in one line, but I would hardly say the code is "optimized".


    1 FOR I=1 TO 10 :: PRINT SEG$("HELLO",1,-5*(I=1));:: NEXT I

     

     

    pretty clever..but unfortunaly it doesnt give the same result on your code, you don't have the line return after "HELLO"..?

  11. having a constraint of 10 lines allows you to optimize your code to the extreme. the logic deployed will be different than with a limitation in byte size
    for example it will be necessary to rethink the loops, the routines, the conditional test
    but I grant you, the result is often illegible and sometime force you to do a dirty code

     

    example, how to do in 1 line  :

     

    10 FOR I=1 TO 10

    20 IF I=1 THEN PRINT "HELLO"

    30 NEXT I

    • Haha 1
  12. some tries of Extended Basic games in only 10 lines ?

     

    decro-050.gif

     

    10 A$="D2FE9EFBFFBF5B4FF":: B$="66283A7E7E3A2866"&RPT$("0",48) ::  CALL MAGNIFY(4) ::CALL CLEAR::CALL COLOR(4,13,3,2,5,6,12,16,15) :: L=3:: X=16:: Y=1
    11 D$=RPT$("3F",5)&RPT$("7F",3)::E$=RPT$("FE",4)&RPT$("FC",4) :: CALL SCREEN(15) ::CALL VCHAR(1,32,132,L+1)::INPUT "LEVEL ( 1 - 10 ) ":T::S=15+T
    12 F$="0061637E6467070707070767647E63610086C67E26E6E0E0E0E0E0E6267EC686" ::  CALL CHAR(63,A$,132,B$,128,D$&D$&E$&E$,112,F$)
    20 FOR I=2 TO 25:: DISPLAY AT(I-1,1) :RPT$(".",12)&"??"&RPT$("  | ",3)&"??":: IF I<14 THEN CALL SPRITE(#I,128,11,1,1) ELSE IF I<23 THEN CALL SPRITE(#I,112,INT(I-12),1,1,S/2,0)
    21 CALL LOCATE(#I,Y,X) :: Y=Y+64:: IF X<128 AND Y<>97 AND Y<>193 THEN Y=Y-32 ELSE IF Y=193 THEN Y=1:: X=X+32:: IF X=112 THEN X=X+17
    22 NEXT I:: FOR I=2 TO 13 STEP 8:: CALL MOTION(#I+1,S,0,#I,S,0,#I+3,S,0,#I+2,S,0)::NEXT I:: CALL MOTION(#17,-S,0,#18,-S,0,#19,-S,0,#6,-S,0,#7,-S,0)
    23 SC=SC+PT::PT=100::CALL MOTION(#8,-S,0,#9,-S,0):: XX=1::YY=1::CALL SPRITE(#1,132,2,XX,YY) :: D=0:: IF L=0 THEN PRINT "BYE, YOUR SCORE:";SC ::END
    81 IF JX<>0 OR JY<>0 THEN CALL POSITION(#1,YY,XX) ::XX=XX+(JX*4) :: YY=YY-(JY*4) :: IF XX>0 AND YY<192 AND YY>0 THEN CALL LOCATE(#1,YY,XX)::CALL SOUND(1,910,0) :: IF XX=225 THEN D=2
    84 CALL COINC(ALL,A)  :: PT=PT-1 :: IF A=0 AND (XX=113 OR XX=1) THEN CALL MOTION(#1,0,0) ELSE IF (A=0 AND XX<113) THEN D=D+1
    85 P=INT((XX-8)/32)+1 :: IF A=-1 AND P>3 THEN D=D+1 ELSE IF A=-1 AND P>0 AND P<4 THEN IF P=2 THEN MY=-S :: CALL MOTION(#1,MY,0)ELSE MY=S :: CALL MOTION(#1,MY,0)
    90 CALL JOYST(1,JX,JY) :: IF D=0 THEN 81 ELSE IF D>0 AND D<3 THEN CALL HCHAR(L,32,32)::L=L-1::CALL SOUND(10,110,0)::GOTO 23 ELSE CALL SOUND(10,2000,0)::GOTO 23 

     

    decro-045.gif

    1 CALL CHAR(128,"5FDFDFDFDFDFC0FFFFE0E0E0E0E0E07FFAFBFBFBFBFB03FFFF07E7E7E7E707FE"):: CALL MAGNIFY(4):: CALL CLEAR:: CALL SCREEN(2):: FOR I=1 TO 10::CALL COLOR(I,8,2)::NEXT I
    2 FOR I=1 to 28 :: CALL SPRITE(#I,128,INT(RND*13)+2,50,50,INT(RND*100)-100,INT(RND*100)-100):: NEXT I :: DISPLAY AT(11,9) : "AMIGA  FORMAT "::DISPLAY AT(12,10) : "PRESS ENTER"
    10 ACCEPT AT(1,1):A$::CALL DELSPRITE(ALL) ::DIM NB(24),NP(24), PX(24),PY(24):: FOR X=0 TO 3 :: FOR Y=0 TO 5 :: PX(A)=1+(X*8) :: PY(A)=2+(Y*4) :: A=A+1 :: NEXT Y :: NEXT X :: I=-1
    11 CALL CHAR(128,"3F40C0C0C0C0C0C0403F6AD5AAD57F00FC0203030303030302FCAA55AB55FE00")::CALL CHAR(65,"103070FFFF703010FFFFFFFFFFFFFFFF")::CALL CLEAR
    30 FOR X=16 TO 246 STEP 64 :: FOR Y=4 TO 192 STEP 32 :: NB(S)=INT(RND*50)::  NP(S)=INT(RND*10)+1 ::S=S+1 ::  CALL SPRITE(#S,128,4,Y,X):: NEXT Y :: NEXT X:: CALL COLOR(5,7,2)
    33 IF I=23 THEN I=0 ELSE I=I+1 ::IF NB(I)<>99 THEN IF NB(I)>90 THEN DISPLAY AT( PY(I),PX(I)) SIZE(4) :" BB":: NB(I)=99 :: G=G+1 ELSE DISPLAY AT( PY(I),PX(I)) SIZE(3) :NB(I)  :: NB(I)=NB(I)+NP(I)   
    35 CALL HCHAR(CY+4,CX+7,32) :: CALL JOYST(1,XX,YY) :: CX=CX+XX*2::CY=CY-YY :: IF CX<0 OR CX>24 THEN IF CX<0 THEN CX=24 ELSE CX=0 ELSE IF CY<0 OR CY>20 THEN IF CY<0 THEN CY=20 ELSE CY=0
    36 CALL KEY(0,K,S):: IF K=32 THEN T=(CY/4)+((CX/8)*6) :: IF NB(T)<79 THEN NB(T)=99::G=G+1::DISPLAY AT( PY(T),PX(T)) SIZE(3) :" BB" ELSE IF NB(T)<99 THEN NB(T)=0::  DISPLAY AT( PY(T),PX(T)) SIZE(3) :NB(T)
    38 IF K=32 AND NB(T)=99 THEN CALL SOUND(100,110,0) :: S=S-1 ELSE IF K=32 AND NB(T)=0 THEN CALL SOUND(100,800,0):: S=S+1
    40 CALL HCHAR(INT(CY)+4,INT(CX)+7,65) ::  IF G=24 THEN CALL CLEAR :: PRINT "LOOSER ! BUY AN ATARI !!!  YOUR SCORE IS ":: PRINT S;" FORMATTED DISK"  :: END  ELSE 33

    decro-042.gif

     

    1 DIM Y(48),YY(8):: FOR I=0 TO 10:: Y(I)=(I*16)+1:: Y(20-I)=Y(I)::NEXT I :: CALL MAGNIFY(4) :: CALL CLEAR ::CALL SPRITE(#8,136,5,176,1):: CALL SCREEN(2)
    2 CALL CHAR(65,"00000000000000FF1818181818181818FF81FF81FF81FF81"):: FOR I=1 TO 32:: READ A:: CALL VCHAR(3,I,A+60,22)::  NEXT I :: T=0 ::  CALL COLOR(5,10,2)
    3 CALL CHAR(132,"1F3E7C7E7F7F7F55555555555555557FF0F87CFCFCFCFC5454545454545454FC"):: FOR I=1 TO 7 :: YY(I)=INT(RND*19):: CALL SPRITE(#I,132,8,Y(YY(I)),I*32-18) :: NEXT I
    4 CALL CHAR(136,"1C3E2A367F3E3E22000000000000000000000000000000000000000000000000") :: A=1:: BX=1::BY=176::BK=241::BXBUF=0
    5 CALL JOYST(1,JX,JY) :: Z=BX+JX*2 :: IF (JY>0) AND (BX=BK) THEN BY=BY-16 :: BK=242-BK :: CALL SOUND(1,560,10) ELSE IF Z>0 AND Z<242 THEN BX=Z
    6 C=INT((BX+23)/32):: TP=Y(YY(C)) ::IF C>0 AND C<8 AND BY>TP-7 AND BY<TP+31 THEN CALL COLOR(5,10,5)::CALL COLOR(5,10,2)::CALL SOUND(1,220,5)::T=T+100
    7 IF BX=241 AND BY=16 THEN CALL CLEAR ::PRINT "YOU WIN !!! YOUR TIME :";T ::END  ELSE YY(A)=YY(A)+1  :: IF YY(A)>19 THEN YY(A)=0
    8 CALL LOCATE(#A,Y(YY(A)),(A*32)-18) ::  A=A+1 :: IF A>7 THEN A=1 
    9 CALL LOCATE(#8,BY,BX):: T=T+1 :: IF BX<>BXBUF THEN CALL SOUND(1,1950,1):: BXBUF=BX ::GOTO 5 ELSE 5
    10 DATA 7,7,5,6,5,5,5,6,5,5,5,6,5,5,5,6,5,5,5,6,5,5,5,6,5,5,5,6,5,5,7,7

     

    • Like 12
  13. no, sound sampling is connecting a audio source to the TI, and digitalize it to play it back on TI.

     

    About midi support, i tought it, but abandonned the idea caused by extra cost and the need of coding a midi software on TI.

    Hopefully, it still possible, even after the release : a simple midi->db9 adapter and a firmware update can do the job !

  14.  

    Considering the number of home-grown clones for the Commodore 64, it is perfectly possible for the VIC-20. They both use the same CPU core: the VIC-20 uses a real 6502 while the Commodore 64 uses a 6510 which is a 6502 with an on-board I/O port. The VIC-20's VIC video chip lacked the higher resolution of the 64's VIC-II (amongst a few other things not relevant to the game.)

     

    the Vic-20 doesn't have realtime 3D graphics like the original version, just sprites in different size... the soul of battlezone is totally killed

  15. i want a nice factory made PCB for myself, so if people are interested , i can produce more.

    i will release in any case the schematics.

     

    the shield would need an arduino mega, so i can supply it or you can buy it directly on internet for 18 $

    i'm also designing the case to be 3D printed.

  16. after long long time ago, here it is an update about this project...and i hope you'll enjoy it.

     

    Actually, the adapter offer a full bidirectional 8 bit communication trough the TI99 joystick port...and will offer :

     

    - USB Mouse support to TI99 ( 90% completed )

    - Megadrive 3 buttons controller support ( 70% completed )

    - Atari Paddle support ( 90% completed )

    - Atari Touch Tablet support ( 70% completed )

    - Playstation 3 & 4 wireless controller support ( 70% completed )

    - 4 Players Atari joystick support ( 100% completed )

    - Atari Joystick support ( 100% completed )

    - 1 analog input 8 bit jack 3.5 ( 100% completed )

     

     

    The most important, all these function ARE 100% fully compatible with TI BASIC, without any assembler and any extenstion...just the TI-99 and the interface and totally controlled by the TI or manually.

     

    By exemple, if you code a game using the Atari Paddle, you can switch to this this mode only with TI Basic. You can also configure all parameters by TI BASIC ( exemple : switch 6 or 8 bit resolution ). Of course, any language can use it. More faster language is, better is.

     

    I also added 1 analog input, i think it could be fun to input some other data type to TI99 ( by exemple to check the light in the room, checking a microphone, etc... )

     

    The board will be a Arduino compatible shield, totally open source. It means that everybody can add other support to the firmware, it's totally upgradable.

    ( by exemple, Wii Remote, Xbox , Light pen support,... )

     

    This little video just show you a analog signal converted to a 8 bit digital signal and drawed on TI99...in fact, the first TI-oscilloscope ;)

     

    Just a small exemple to use 4 joystick on TI99 in TI BASIC :

     

    10 CALL JOYST( 2, x,y) -> will return X,Y on joystick 1

    20 CALL JOYST( 1, x,y) -> will return X,Y on joystick 2

    30 CALL JOYST( 1, x,y) -> will return X,Y on joystick 3

    40 CALL JOYST( 1, x,y) -> will return X,Y on joystick 4

     

    for usb mouse / paddle / analog line / touch tablet :

     

    10 CALL JOYST( 2, x,y) -> will return X axis high 4 bit

    20 CALL JOYST( 1, x,y) -> will return X axis low 4 bit

    30 CALL JOYST( 1, x,y) -> will return Y axis high 4 bit

    40 CALL JOYST( 1, x,y) -> will return Y axis low 4 bit

     

    for PS3 / PS4 controller ( depending of configuration : 4 buttons or 8 buttons, analog or digital controller )

     

    in simple digital controller + 4 buttons mode :

     

    10 CALL JOYST( 2, x,y) -> will return joystick direction

    20 CALL JOYST(1, x,y ) -> will return 4 buttons states

     

    in analog + 4 buttons mode ( ok, i agree, in TI Basic, it become really slow ) :

     

    10 CALL JOYST( 2, x,y) -> will return X axis high 4 bit

    20 CALL JOYST( 1, x,y) -> will return X axis low 4 bit

    30 CALL JOYST( 1, x,y) -> will return Y axis high 4 bit

    40 CALL JOYST( 1, x,y) -> will return Y axis low 4 bit

    50 CALL JOYST( 1, x,y ) -> will return 4 buttons states

     

    for megadrive ( depending of configuration : 3 buttons or 5 buttons ) :

     

    3 buttons configuration :

     

    10 CALL JOYST( 2, x,y) -> will return joystick direction

    20 CALL JOYST(1, x,y ) -> will return 3 buttons states

     

     

    The final interface will be released for the end of this year, including Pong ( Paddle compatible ), Bomberman ( 4 Atari joystick compatible ) and a simple graphic program using mouse or touch tablet.

     

    • Like 6
×
×
  • Create New...