Commodore64
draw blocks with light-pen in low-res mode
10 POKE 53280,0: POKE 53281,1
20 PRINT "{Shift+CLR}"
30 PRINT " DOODLE3D"
50 GOSUB 200 60 GOSUB 100 70 GOTO 10
100 POKE 780,0 110 POKE 781,Y 120 POKE 782,X 130 SYS 65520 140 PRINT "X" 150 RETURN
200 X=(PEEK(53267)-27)/4 210 Y=(PEEK(53268)-51)/8 220 IF X<1 THEN X=1 230 IF X>39 THEN X=39 240 IF Y<1 THEN Y=1 250 IF(Y>25 THEN Y=25 260 RETURN
# modulo
use backslash
# toggle upper/lower case
Shift+CommodoreKey
# clear screen
print chr$(47)
or
print "(Shift+CLR)"
# print at location ROW,COL
prints "X" at row=5, col=10
5 print chr$(147) 10 poke 780,0 20 poke 781,5 30 poke 782,10 40 sys 65520
# read X,Y coord of light-pen
use a bright background with dark border
10 POKE 53280,0: POKE 53281,1
read values from 53267 and 53268 for X and Y ([[http://www.c64-wiki.com/index.php/Light_pen#Programmer.27s_How-To-section|read more]])
20 PRINT PEEK(53267)" "PEEK(53268)
30 GOTO 20
# serial communication in both directions at 1200 baud
(send CAPITALS from the PC because the character-set of the c64 is different)
10 OPEN 5,2,2,CHR$(8) 20 GET#5,A$: IF A$<>"" THEN PRINT A$; 30 GET B$: IF B$<>"" THEN PRINT#5,B$; 40 GOTO 20
CHR$(6) = 400 baud (= bin 00000110)
CHR$(8) = 1200 baud (= bin 00001000)
# tips van johan vandenbran.de
* https://github.com/cc65/cc65
*http://lallafa.de/blog/c64-projects/macvice/
*https://www.google.nl/webhp?sourceid=chrome-instant&ion=1&espv=2&ie=UTF-8#sourceid=chrome-psyapi2&ie=UTF-8&q=vice%20osx
*http://vice-emu.sourceforge.net/vice_14.html
*http://www.ajordison.co.uk/
*http://vandenbran.de/
*coolterm
*http://jderogee.tripod.com/
# background color
POKE 53281,15
# invert colors
POKE 53280,0: POKE 53281,1
# tips
* http://www.infinite-loop.at/Power64/Documentation/Power64-ReadMe/AA-C64_BASIC.html
# arduino to user port
* [[https://www.youtube.com/watch?v=DLYXUgH9rAI|NL filmpje]]
* [[http://www.hardwarebook.info/C64_RS232_User_Port|user port schema]]
* [[http://www.c64-wiki.com/index.php/User_Port|user port schema 2]]
# read joystick
PEEK(56320)
# save file to disk
SAVE "FILENAME",8
or
DSAVE "FILENAME"
overwrite:
DSAVE "@:FILENAME"
video: https://www.youtube.com/watch?v=F1rjCxT2w4c
# delete a file from disk
OPEN 15,8,15
PRINT#15 "S0:FILENAME"
CLOSE 15
# reference guide
[[http://www.commodorefree.com/magazine/information/Commodore%2064%20Reference%20Guide.pdf|reference guide]]
# list files
LOAD "$",8
LIST
of
F7 (met de Final Cartridge III)
# final cardridge iii
http://en.wikipedia.org/wiki/The_Final_Cartridge_III
tip: druk RUN/STOP in tijdens het indrukken van de Reset knop, dan kom je in basic en kun je de functietoetsen gebruiken waarmee je met F5 een disk runt en met F7 een dir listing opvraagt.
# run first program on disk
load"*",8,1
indien nodig gevolgd door:
run
of
DLOAD
# format disk
OPEN1,8,15,"N:NEW DISK,00":CLOSE1
# dirmaster3
*[[http://style64.org/dirmaster|dirmaster3]]