Skip to content

Instantly share code, notes, and snippets.

tomaes

  • Germany
View GitHub Profile
@tomaes
tomaes / pico racer (c64)
Last active Dec 13, 2015
first version. ~300 byte commodore basic v2 (c64) mini game. use petcat and VICE to run on a pc. Or CBM studio. Or type it in like a man.
View pico racer (c64)
0 rem .-==: pico.racer :==-.
1 j=56320:p=1444:r=119:l=r+4:c=.001:printchr$(147)
2 w=peek(j):ifw=rthenx=x+1
3 ifw=lthenx=x-1
4 o=15+int(sin(m*.1)*3):ifm>20thens=s-(peek(p+x)=32)
5 pokep+x,81:printspc(o)"";:fori=0to5:ifrnd(0)>bthenprint":";:goto7
6 print" ";
7 next:pokep+x,66:m=m+1:b=b+c:prints:ifs<10thengoto2
8 print,"miles:";m
@tomaes
tomaes / pattern drawing performance (c64)
Created Feb 21, 2013
some pattern drawing methods benchmarked (c64)
View pattern drawing performance (c64)
0 rem char screen pattern drawing methods and performance / commodore basic v2.0 (c64)
2 rem results for lines:
3 rem 10-> 18s (!)
4 rem 20-> 9s (same as 10, but twice as fast)
5 rem 30-> 3s (no PRNG? waay faster still)
6 rem 40/50-> <= 1s (cashed string 'brush' with and without PRNG, pretty fast)
7 rem all: <= 14s
9 ti$="000000"
10 for i=0 to 999: poke 1024+i,160+rnd(0)+0.5: next i
20 a=1024:b=2023:c=160:fori=atob:pokei,c+rnd(.)+.5:next
@tomaes
tomaes / joystick test (c64)
Last active Dec 14, 2015
for when "10 print peek(56320): goto 10" is not enough
View joystick test (c64)
10 rem joystick port test mini tool, press <space> to switch ports
20 p=56320:s=0
30 print" {return*2}{cyan} joystick (#"str$(2-s)") port"p+s"{return*2}"
40 j=peek(p+s): print"{up*2}{light gray} 0 1 2 3 4 5 6 7 val{light blue}"
50 geta$:if a$=" " then s=abs(s-1):print"{up*4}";:goto 30
60 print abs((jand1)>0)abs((jand2)>0)abs((jand4)>0)abs((jand8)>0);
70 print abs((jand16)>0)abs((jand32)>0)abs((jand64)>0)abs((jand128)>0);j
80 goto 40
View typefaster (c64)
0 c$=chr$(65+rnd(.)*26):printc$"?";:fori=sto4^5:next:s=s+9:geta$:printa$:ifa$=c$thengoto0
@tomaes
tomaes / femto racer (c64)
Last active Dec 14, 2015
pico racer's anorexic sister. now 2 lines of code.
View femto racer (c64)
4 rem femto racer; press <space> (or not) to stay on the road
6 printspc(9+sin(f)*6+6+sin(f*2)*5)"{white}: {green}:{gray}"m:f=f+.1:geta$:p=p+(a$=" ")*2+1
8 q=4^5+p:m=m+1:ifpeek(q)<>58thenpokeq,22:goto6
@tomaes
tomaes / basic chr$(32) adventure (c64)
Last active Dec 14, 2015
mini game. space shooter without space. and shooting.
View basic chr$(32) adventure (c64)
10 print"{clear}{down*8}{14}{red}dodge!{light blue}{return}{reverse on}{162*21}";:s=54296
20 sc=1024:py=0:lv=3:w=40:t=10:ti$="000000":js=56320:poke53280,6:cl=646:zz=198
30 j=peek(js)and3:if(j<>3)thenpy=py-(j=1)+(j=2):py=pyand7
40 sp=sc+(t+py)*w+t:pokesp,62:pokesc+(t+int(rnd(.)*8))*w+19,w:pokes,2:pokes,.
50 print"{home}{down*9}":fori=.to7:print" {delete} ":next:print
60 ifpeek(sp)<>32thenlv=lv-1:pokecl,2:pokes,9:pokes,.
70 print"{up}{reverse on}>"str$(lv)"{space*12}"ti$"{light blue}":iflv>.thengoto30
80 print"{up}{reverse on}game over,score:":pokezz,.:waitzz,1:run
View analogue mouse test (c64)
10 rem analogue mouse test tool
12 rem - movement detection by polling SID registers s+25/26
14 rem - left/right buttons detection by polling control port #1
16 s=54272: js=56321
18 print"{reverse on}{down}analogue mouse test{reverse off}{down*4}"
20 y$="{light gray}yes{light blue}":n$="{gray}no {light blue}"
22 h$=n$: v$=n$: lmb$=n$: rmb$=n$
24 ho=peek(s+25):vo=peek(s+26)
26 fori=.to39:next
28 if ho<>peek(s+25) then h$=y$
View click beat sequence (c64)
0 b$="19243342":fori=1to8:poke54296,val(mid$(b$,i,1)):pokes,.:forj=.to99:nextj,i:goto.
@tomaes
tomaes / joymin.asm
Last active Aug 29, 2015
c64 / MOS 6510: lazy joystick test (port #2)
View joymin.asm
; lazy joystick test
* = $7c ; auto start in VICE
;
LDA $DC00 ; get port byte
STA $05F4 ; mid-screen
BVC *-6 ; 8 bytes total
@tomaes
tomaes / joyloop.asm
Last active Aug 29, 2015
another joystick test, bitwise, looped, with comments too (c64)
View joyloop.asm
; minimal joystick test #3, 21 byte loop version; @ = not set, A = set
* = $1000
INIT LDY #8 ; init loop for checking all joystick port bits
LDA $DC00 ; load joystick port byte
LOOP PHA ; make a copy and put it on the stack
AND #1 ; least significant bit set?
You can’t perform that action at this time.
You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session.