Commodore 64

Das Leben, das Universum und der ganze Rest.
Benutzeravatar
oDOSseus
LAN Manager
Beiträge: 239
Registriert: Di 10. Aug 2010, 15:21

Commodore 64

Beitrag von oDOSseus »

Hallo lieber Mitglieder =)

Ich war ziemlich durcheinander, ob das hier nun offtopic ist oder Programmierung. Ich habe in meiner Freizeit und als "Entspannungsübung" ein wenig für den C64 programmiert (auf nem Emulator, da ich leider keinen eigenen habe). Es sind ein sehr einfaches Zahlenrätsel zur Erlernung von c64-Basic, ein Code-Rätsel und ein Erinnerungstrainer entstanden. Besteht hier im Forum interesse an dem Programmtext? Is ja ein Dos-Forum und kein c64-Forum.

Falls ja, würde ich den Programmtext hier online stellen. Er ist komplett von mir, daher openSource. Die Ideen, gab es allerdings schon vorher. Allerdings auch in manigfaltiger Ausführung.

Meldet euch =) würd mich freuen.
Zuletzt geändert von oDOSseus am Sa 1. Apr 2023, 17:51, insgesamt 1-mal geändert.
Benutzeravatar
Doctor Creep
DOS-Guru
Beiträge: 972
Registriert: Di 27. Jan 2009, 19:33

Re: Commodore 64

Beitrag von Doctor Creep »

oDOSseus hat geschrieben:Falls ja, würde ich den Programmtext hier online stellen. Er ist komplett von mir, daher openSource. Die Ideen, gab es allerdings schon vorher. Allerdings auch in manigfaltiger Ausführung.
Mach mal - z.B. ich hab durchaus ne Verbindung zum C64 - siehe->

http://www.alice-dsl.net/lgoerke/c64enter.html

;)

Und hier gibts sogar einen C64-Emu (Java) mit ein paar Programmen - z.B. das bahnbrechende Super Glazz - dort geht es u.a. auch um Zahlen *g*

http://www.alice-dsl.net/lgoerke/c644.html

Doc
Benutzeravatar
oDOSseus
LAN Manager
Beiträge: 239
Registriert: Di 10. Aug 2010, 15:21

Re: Commodore 64

Beitrag von oDOSseus »

Die Sonderzeichen kann ich schlecht einfügen. Das große Q wäre zum Beispiel das Zeichen, wenn man shift und Q drückt. also der Kreis.




1. GUESSNUM hab ichs genannt:

Code: Alles auswählen

1 gosub 1002
5 input "upper limit";li
10 nm = int(li*rnd(1))+1
15 cn = 0
20 print "let's go!"
30 print ""
31 input "any guess";gu
32 if gu=0 then goto 100
35 cn = cn + 1
40 if gu >nm then print "my number is lesser.":goto 30
50 if gu < nm then print "my number is greater.":goto 30
60 if gu = nm then print "that is my number"
65 print "you have needed only ";cn;"tries"
70 print "again? (y/n)"
80 get an$:if an$="" then 80
90 if an$ = "y" then goto 5
100 end
1000 print chr$(147)
1001 return
1002 gosub 1000
1003 print "QQQQQQQQQQQ guess the number QQQQQQQQQQQ"
1004 print ""
1005 print "  this program thinks about a number"
1006 print "  between 1 and a limit of your choice."
1007 print "  you have to guess that number and this"
1008 print "  program tells you if its number is"
1009 print "  greater, lesser or if you are right"
1010 print ""
1011 print "  you can exit by typing in 0 as your"
1012 print "  guess"
1013 print ""
1014 return
Das Spiel2 : CODE5

Code: Alles auswählen

1 clr
2 print rnd(-4)
3 gosub 1200
4 let t = 0
20 print ""
30 gosub 1100
40 print "  i have a 5-digit-code. beat it!"
41 print "  you have 5 tries!"
50 o$ = ""
51 let ri = 0
52 let t = t + 1
53 input "any guess"; gu$
54 if gu$ = "exit" then end
60 if len(gu$) = 5 then goto 70
61 print "wrong input. type in 5 digits"
62 goto 50
70 for i=0 to 4 step 1
80 let in = val(mid$(gu$,i+1,1))
90 if in<>n(i) then goto 130
100 let ri = ri + 1
110 o$ = o$ + "*"
120 goto 140
130 gosub 1005
140 next i
190 print "           ";o$
200 if ri = 5 goto 220
205 if t = 5 goto 230
210 goto 50
220 print "you are a genius!"
221 end
230 print "haha! you failed!"
240 print "the code was: ";n(0);n(1);n(2);n(3);n(4)
250 end
999 end
1000 print chr$(147)
1001 return
1002 gosub 1000
1003 print "QQQQQQQQQQQQQ code-hacker  QQQQQQQQQQQQQ"
1004 return
1005 if in = n(0) or in = n(1) or in = n(2) or in = n(3) or in = n(4) then goto 1008
1006 o$ = o$ + "-"
1007 return
1008 o$ = o$ + "+"
1009 return
1100 dim n(4)
1101 let n(0) = 10
1102 let n(1) = 10
1103 let n(2) = 10
1104 let n(3) = 10
1105 let n(4) = 10
1110 for i = 0 to 4 step 1
1120 let z = int(rnd(0)*10)
1130 if z = n(0) or z = n(1) or z = n(2) or z = n(3) or z = n(4) then goto 1120
1140 let n(i) = z
1150 next i
1190 return
1200 gosub 1002
1210 print ""
1211 print "    this is code-hacker."
1212 print "  code-hacker will think about a five- "
1213 print "  digit long sequence of numbers. each "
1214 print "  number is between 0 and 9 and it"
1215 print "  appears only once within the code."
1216 print ""
1217 print "    code-hacker turns your input into a"
1218 print "  sequence of *,- and +:"
1219 print "+ = right number, wrong position."
1220 print "* = right number, right position."
1221 print "- = wrong number."
1223 print ""
1224 print " the game will stop asaf you input exit"
1225 return
3. MEMMASTER

Code: Alles auswählen

0 clr
1 print rnd(-1)
2 gosub 1004
3 get a$:if a$="" then 3
4 gosub 1000
10 dim a(63)
20 let i = 0
30 let a(i) = int(rnd(0)+0.5)
40 gosub 1016
50 print "press any key if you are ready (q=exit)"
60 get a$:if a$="" then 60
61 if a$="q" then goto 999
70 gosub 1000
80 input "";u$
90 gosub 1021
100 if r=0 then goto 300
110 print "  correct!!! press any key to continue";
120 get a$: if a$="" then 120
130 gosub 1000
140 print "my code:"
150 let i=i+1
160 if i>63 then goto 400
170 goto 30
300 gosub 1000
310 print "          {cbm-a}{17 shift-*}{cbm-s}"
320 print "          ]                 ]"
330 print "          ] y o u   l o s t ]"
340 print "          ]                 ]"
350 print "          {cbm-y}{17 shift-*}{cbm-x}"
360 end
400 gosub 1000
410 print "          {cbm-a}{17 shift-*}{cbm-s}"
420 print "          ]                 ]"
430 print "          ] y o u   w o n ! ]"
440 print "          ]                 ]"
450 print "          {cbm-y}{17 shift-*}{cbm-x}"
999 end
1000 print chr$(147)
1001 print "QQQQQQQQQQQQQQ mem-master QQQQQQQQQQQQQQ";
1002 print ""
1003 return
1004 gosub 1000
1005 print "    this is mem-master. i will show you"
1006 print "  a sequence of 1 and 0 and you will"
1007 print "  have to remember it. each time you can";
1008 print "  remember that sequence, the sequence"
1009 print "  will become longer."
1010 print "    you win if you can remember 64 1 or"
1011 print "  0s. but i think that you worthless "
1012 print "  human cannot reach that.
1013 print ""
1014 print "    press any key to start start!"
1015 return
1016 for j=0 to i
1017 poke 1184+j,a(j)+48
1018 next j
1019 print "{4 down}"
1020 return
1021 if len(u$)<>i+1 then goto 1027
1022 for j=0 to i
1023 if val(mid$(u$,j+1,1))<>a(j) then goto 1027
1024 next j
1025 let r=1
1026 return
1027 let r=0
1028 return
elianda
DOS-Übermensch
Beiträge: 1150
Registriert: Mi 31. Jan 2007, 19:04
Wohnort: Halle
Kontaktdaten:

Re: Commodore 64

Beitrag von elianda »

Ich finde es gut, dass Du auf dem C64 etwas programmierst, denn der Rechner eignet sich sehr gut, um die Grundlagen zu erlernen.
An Dokumentation wird es Dir da wohl nie mangeln.

Ich empfehle Dir nachdem Du halbwegs mit Basic klar kommst etwas Assembler zu programmieren. Die C64 CPU hat nur 56 Befehle (Wovon man vielleicht 10 oft nutzt) und ist damit sehr übersichtlich für den Anfang.
z.B. um so ein Zahlenraten Basic Programm in Assembler zu konvertieren.

Wenn Du dann denkst, du kennst Dich einigermassen aus und weisst, was man so hinbekommen kann - dann schaue Dir ein paar aktuelle Demos auf dem C64 an. :-D
Diverse Retro-Computer vorhanden.
Benutzeravatar
oDOSseus
LAN Manager
Beiträge: 239
Registriert: Di 10. Aug 2010, 15:21

Re: Commodore 64

Beitrag von oDOSseus »

Das asm für den C64 Lernen hatte ich mir schon vorgenommen. allerdings fand ich dazu relativ wenig Dokumentationen und auch keinen entsprechenden cross-compiler bzw. cross-assembler
elianda
DOS-Übermensch
Beiträge: 1150
Registriert: Mi 31. Jan 2007, 19:04
Wohnort: Halle
Kontaktdaten:

Re: Commodore 64

Beitrag von elianda »

Diverse Retro-Computer vorhanden.
Benutzeravatar
oDOSseus
LAN Manager
Beiträge: 239
Registriert: Di 10. Aug 2010, 15:21

Re: Commodore 64

Beitrag von oDOSseus »

letztere Seite ist aber "under construction". Und was da steht, das weiß ich schon xD xD.
elianda
DOS-Übermensch
Beiträge: 1150
Registriert: Mi 31. Jan 2007, 19:04
Wohnort: Halle
Kontaktdaten:

Re: Commodore 64

Beitrag von elianda »

Du hattest ja nicht geschrieben, wie tief Du schon eingestiegen bist.
Aber das sollte dann erstmal 'etwas' mehr bieten: http://www.ffd2.com/fridge/
Diverse Retro-Computer vorhanden.
freecrac
DOS-Guru
Beiträge: 861
Registriert: Mi 21. Apr 2010, 11:44
Wohnort: Hamburg Horn

Re: Commodore 64

Beitrag von freecrac »

oDOSseus hat geschrieben:Das asm für den C64 Lernen hatte ich mir schon vorgenommen. allerdings fand ich dazu relativ wenig Dokumentationen und auch keinen entsprechenden cross-compiler bzw. cross-assembler
Freunde von mir hatten so ein "Final Cartridge" mit dem man auch Disassemblieren/Assemblieren konnte (nannte sich Monitor).
http://www.c64-wiki.de/index.php/Final_Cartridge_3

Ich habe damals einen Speichermanager den "promon 64"(von Ed van Hout) benutzt. Den gab es mit einem C64´er-Heft (64'er Nr.14: The Best of Anwendungen; Master-Tool; SMON; PROMON; MAILBOX; ).
Dafür habe ich dann noch diverse Hotkeys programmiert um mir das Programmieren zu erleichtern.
http://www.amiga-magazin.de/64er/64erar ... /sh53a.txt

Assembler-Schule für den Commodore 64: http://members.chello.at/wiener.freiheit/ass/ass.htm
Maschinensprache des C64 für Anfänger: http://www.c128.net/temp/input64.pdf
Magic Disk 64: http://magicdisk.untergrund.net/md/KURS ... 1.txt.html

http://unusedino.de/ec64/technical/aay/c64/
6510 instruction set & Infos: http://unusedino.de/ec64/technical/aay/c64/bmain.htm

Dirk
elianda
DOS-Übermensch
Beiträge: 1150
Registriert: Mi 31. Jan 2007, 19:04
Wohnort: Halle
Kontaktdaten:

Re: Commodore 64

Beitrag von elianda »

freecrac hat geschrieben:
oDOSseus hat geschrieben:Das asm für den C64 Lernen hatte ich mir schon vorgenommen. allerdings fand ich dazu relativ wenig Dokumentationen und auch keinen entsprechenden cross-compiler bzw. cross-assembler
Freunde von mir hatten so ein "Final Cartridge" mit dem man auch Disassemblieren/Assemblieren konnte (nannte sich Monitor).
http://www.c64-wiki.de/index.php/Final_Cartridge_3
Das FC3 hat nur einen Monitor integriert und keinen Assembler.
Diverse Retro-Computer vorhanden.
Benutzeravatar
oDOSseus
LAN Manager
Beiträge: 239
Registriert: Di 10. Aug 2010, 15:21

Re: Commodore 64

Beitrag von oDOSseus »

Das mit der Assembler-Schule sieht höchst interessant aus, aber der download ist leider kaputt und man kann sich die Beispielprogramme nicht ansehen, was das lernen etwas schwer macht. Hast du den download vllt.?
freecrac
DOS-Guru
Beiträge: 861
Registriert: Mi 21. Apr 2010, 11:44
Wohnort: Hamburg Horn

Re: Commodore 64

Beitrag von freecrac »

elianda hat geschrieben:
freecrac hat geschrieben:
oDOSseus hat geschrieben:Das asm für den C64 Lernen hatte ich mir schon vorgenommen. allerdings fand ich dazu relativ wenig Dokumentationen und auch keinen entsprechenden cross-compiler bzw. cross-assembler
Freunde von mir hatten so ein "Final Cartridge" mit dem man auch Disassemblieren/Assemblieren konnte (nannte sich Monitor).
http://www.c64-wiki.de/index.php/Final_Cartridge_3
Das FC3 hat nur einen Monitor integriert und keinen Assembler.
Das ist doch ein einfacher "Debugger" mit dem man auch Menmonics/Bytesequenzen eingeben kann, oder täusche ich mich hierbei (es ist schon so lange her)?

Dirk
elianda
DOS-Übermensch
Beiträge: 1150
Registriert: Mi 31. Jan 2007, 19:04
Wohnort: Halle
Kontaktdaten:

Re: Commodore 64

Beitrag von elianda »

freecrac hat geschrieben:
elianda hat geschrieben:
freecrac hat geschrieben: Freunde von mir hatten so ein "Final Cartridge" mit dem man auch Disassemblieren/Assemblieren konnte (nannte sich Monitor).
http://www.c64-wiki.de/index.php/Final_Cartridge_3
Das FC3 hat nur einen Monitor integriert und keinen Assembler.
Das ist doch ein einfacher "Debugger" mit dem man auch Menmonics/Bytesequenzen eingeben kann, oder täusche ich mich hierbei (es ist schon so lange her)?
Ja ein Maschinensprachmonitor ist im Prinzip ein sehr einfacher Debugger, aber was hat das jetzt mit einem Assembler zu tun?
Der Monitor kann nur einzelne Mnemonics assemblieren (die einfachen Monitore koennen das btw. nicht). Damit schreibt man aber keine Programme.
Diverse Retro-Computer vorhanden.
Benutzeravatar
oDOSseus
LAN Manager
Beiträge: 239
Registriert: Di 10. Aug 2010, 15:21

Re: Commodore 64

Beitrag von oDOSseus »

kurze frage:
ich habe im Relaunch64 jetzt n paar Zeilen gecodet und will die mit c64 assemblieren. wie kann ich damit ne .prg erzeugen und im emulator ausführen? danke =)
freecrac
DOS-Guru
Beiträge: 861
Registriert: Mi 21. Apr 2010, 11:44
Wohnort: Hamburg Horn

Re: Commodore 64

Beitrag von freecrac »

oDOSseus hat geschrieben:Das mit der Assembler-Schule sieht höchst interessant aus, aber der download ist leider kaputt und man kann sich die Beispielprogramme nicht ansehen, was das lernen etwas schwer macht. Hast du den download vllt.?
Ich habe noch nicht weiter gesucht. Obige Seiten fand ich beim gooockeln.

Dirk
Antworten