Startseite
Foto
Kontakt
C64-Basic-Welt
Einkaufen
Essen und Trinken
Gesundheit
Politik
Basteln
Witze



(((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((

INHALT:
------------------------------------------
-Neu: Basic-Magazin-0001 für den C64
------------------------------------------
-C64-Web-Adressen:  Emulatoren, Foren, CD´s
-C64-Spiele:  Soduku, Skat, Schatzhöhle
-C64-Lernprogramme:  Basic-Kurs, Zeichentip, Grundrechnen
-C64-Demo: Große Zeichen
-C64 Programmiertipps

Hallo, hier noch ein paar Webadressen, Infos und Downloads zum C64.

(((((((C64-ADRESSEN((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((
: : : EMULATOREN : : :
www.ccs64.com       www.emu64.de    www.micro64.de 
www.c64emulator.111mb.de     www.viceteam.org     http://vice.c64.org   
: : : SHOPS : : :
www.vesalia.de       www.protovision-online.de       www.go64.de 
www.c64forever.com    www.c64emulator.co.uk
: : : DISKMAGS : : :
www.c64.at        www.mags.c64.org        www.atlantis-prophecy.org/mags/
www.64er-online.de 
www.sceneworld.org           csdb.dk
www.digitaltalk64.de    www.twitter.com/digitaltalk101
: : : FOREN : : :
 
www.c64-wiki.de    www.commodore-news.com
: : : GAMES : : :
www.c64games.de       www.germanc64.de    http://arnold.c64.org
www.64er-online.de     www.c64-online.com    www.atlantis-prophecy.org
www.C64scene.com     www.c64scene.nl    www.c64.sk     www.c64.ch
www.c64.com     www.c64.org    www.lemon64.com     
www.boulder-dash.nl       www.bd-fans.com     www.mt-fanpage.de   
www.psytronik.net   www.eway10.de   www.smash-designs.de www.demodungeon.com    www.mingos-commodorepage.com
: : : ONLINE-GAMES : : :
www.c64x.de        http://c64s.com     
: : : VIDEOS : : :
ttp://c64-longplays.de  
: : : HARDWARE : : :
www.dienstagstreff.de    http://64hdd.com    www.1541ultimate.com
http://sta.c64.org    www.rr.c64.org   www.ide64.org  www.pitsch.de/stuff/
www.jschoenfeld.com/

(((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((

BESCHREIBUNG ZUM C-64:
a) Der C-64 Computer ist ein Heimcomputer der in den 80er Jahren vor dem PC
auf dem Markt kam. Er hatte 64-kB RAM und 20kB ROM Speicher, 8 Bit.
b) Modi: Textmodus, Multicolormodus, Hintergrundfarbmodus,
Hires- und Multicolor Grafikmodus, 3 Kanal Soundchip.
c) Anschlüße: 2x Joystick, 1x Kassete, Modulschacht, Seriell,
USER-Port(Parallelport), Antenne, DIN Monitor/Video/Ton-Anschluß(AV).
Durch diese Anschlüße lassen sich eine Vielzahl von Geräten anschließen,
Fernseher, Monitor, Datasette, Floppy, Drucker, Kartenleser, Joystick, Paddle,
Lightpen, Spielmodule, Floppyspeeder, Reset-Taster, etc.
d) Die Standard-Ausstattung ist C64-Computer, Floppy1541,2 Joysticks,Reset-Taster
e) Da weder der Maschinencode noch das C64-BASIC PC-kompatibel ist,
braucht man einen EMULATOR- also eine C64-Programmleser um
die Programme auch auf dem PC nutzen zu können.

Natürlich kann man alles mit einem C64-Emulator (Programmleser) auch am PC nutzen, die von den Emulator Adressen heruntergeladen werden können.

HINWEISE ZUM DOWNLOAD:
1. Die Programme auf der Festplatte speichern. 
2. Dann das C64-Emulator-Programm starten, z.B. CCS.exe oder X64.exe.
Damit können die Programme über das Verzeichnis-Menue gestartet werden.
3. Automatisches Öffnen ist grundsätzlich nur dann möglich, wenn ein C64-EMU
installiert ist und die Dateiendungen, wie *.prg,*.d64,*.t64  auf das Emulator-Programm verweisen.
4. Leider werden die Programmen nicht mit dem Orginalnamen downgeloaded.
Man sollte die Datei daher am besten gleich umbenennen.
Die Endung darf dabei aber natürlich nicht verändert werden z.B. *.prg *.d64
*.t64, da das Programm von dem Emulator dann nicht mehr geöffnet werden kann.

(((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((

           
         



      

BASIC-MAG-0001.D64










Hier kommt die erste Ausgabe des Basic-Diskmags.
Mit Disk-Lader, Demos, Spielen, Editoren und Listings.

  



        

SKAT-KARTEN.PRG

Das Spiel Skat-Karten programmiert im Basic-Windows-Stil.



  
       

SCHATZ-HOEHLE.PRG

Das Titelbild vom Spiel Schatzhöhle. 

    


     

SCHATZ-HOEHLE2.PRG

hier ein Levelbild von insgesamt 38 Leveln.



            

SUDUKU.PRG

Das Zahlenrätsel-Spiel Sudoku.





        

AUTO-KENNZEICHEN.PRG

Das Daten-Bank Programm Deutsche Autokennzeichen.




          

GRUND-RECHNEN.PRG


Das Mathe Lernprogramm für Grundrechnen-Arten.


      
   

           

ZEICHEN-TIP II.PRG

Der Tastatur Tip-Trainer Zeichentip.




        

BASIC-PRAXIS 1++.PRG



         

KOMMENTAR ZU 1.PRG

Die  Basic-Unterprogrammsammunlung Basic-Praxis.






         

grosse-zeichen.prg


BASIC-DEMO GROSSE-ZEICHEN: zeigt
Großschrift-, Roll- und Spieledemos.

(((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((

BASIC-PROGRAMM-BEISPIELE

Hier ein paar Listings, die zeigen, wie man den C64 erfolgreich in
Basic programmieren kann.
Die Zeichen in [.] sind Steuerzeichen. Hierzu gibt man zuerst die
Zeile normal ein. Dann schaltet man mit CTRL-9 in den Revers-Modus.
Nun überschreibt man die [.]-Zeichen so, das diese revers dastehen und
gibt dann RETURN ein.

BASIC-SOFTTUNING:
Mehr Platz für Sprites, Grafik, Programme und Zeichen
====================================

1 :goto300:-----c64-basic-softtuning
2 :list
300 :rem:rom-ram,schirm:52224,satz:53248,zeichen:53248
301 :poke56334,0:poke1,peek(1)-4
302 :poke88,0:poke89,0:poke90,0:poke91,0:poke781,97:poke782,0:sys41971:poke1,53
303 :poke56334,1:poke648,204:sys58692:poke53272,54:poke56576,196
309 :
310 :rem----restore-befehl und go-befehl aendern
311 :a=43039:pokea,61:pokea+2,0:pokea+4,62:restore
312 :fori=0to7:reada:poke43029+i,a:next:data32,235,183,164,20,76,12,229
319 :
350 :rem---set-basic(1024)
351 : poke210,4:poke44,4:print"@aha@ [s] 1 [q] pO46,"peek(46)-4":rU2: [s]";
352 :poke631,13:poke632,13:poke198,2:sys42107:

*Als erstes wird das Betriebssystem und der Zeichensatz in das RAM kopiert,
wo man dann beides ändern kann. Nun kann man die Speicherkonfiguration
ändern: poke1,55 bis 53, und sogar 48 bis52 sind möglich:

poke56334,0:poke1,51::poke53248,255::poke1,55:poke56334,1:rem--zeichen-aendern

* Der Schirm wird ins obere RAM: 52224 verlegt, wo nun der Zeichensatz ab
53248 geändert werden kann. Es können nun auch viele Sprites, mehrere Bildschirme und Zeichensätze und die Grafik-Bitmap benutzt werden, ohne Verluste oder Einschränkungen beim Hauptspeicher.

* Das nächste Teillisting zeigt 2 <Basic-Befehlsänderungen> im Betriebssystem:
- Der RESTORE-Befehl setzt nun den DATA-Zeiger nicht mehr auf den
  Programmanfang, sondern auf sich selbst.
  Dadurch kann der Programmierer den DATA-Zeiger nun auf verschiedene Programm
  Bereiche setzen.
- Der GO-Befehl wird dahin umprogrammiert, daß man nun den Cursor auf eine
  beliebige Bildschirmposition setzen kann: go spalte, zeile.

* Das Listing <Set Basic> versetzt den Basic-Anfang nach 1024, dadurch
kann der Platz für Basic-Programme um 1KB vergrößert werden.
Also sogar eine Hauptspeicher-Erweiterung ist hiermit möglich.

Insgesamt gesehen verkürzt das Programm die Installationszeiten für
Basic-Prpgramme und verbessert die Speicherausnutzung erheblich.


STRUKTURIERTE PROGRAMMIERUNG:
=============================
Auch strukturierte Programmierung ist am C64 möglich:

10 :rem---repeat-schleife
11 :j=0:fori=.to.:
12 :i=j<10:next:printj
19 :
20 :rem--while-schleife
21 :j=0:fori=.to.:i=j<10:
22 :if i then: j=j+1
23 :next:printj


FUNKTIONEN ALS UNTERPROGRAMM:
=============================
Mit einem Trick wird es möglich Funktionen zu Unterprogrammen zu
erweitern und damit fehlende Basic-Befehle nachrüsten.
Man kann damit sogar eigene Sprung-Befehle programmieren,
die data-Anweisungen, Zeilen oder Adressen als Sprungziel benutzen.

10 :i=.9:rem--go.next-data:sysfnd(i)
11 :poke785,228:poke786,167:re=59736:ga=47078
12 :deffnd(i)=47078-4*(i=.)+usr(.);b=peek(61)+peek(62)*256:ifi=.9thensysfnd(1)
13 :poke66,b:poke65,b-peek(66)*256:if i=.thensysre
14 :fori=-ito-1:readb$:next:poke781,peek(65):poke782,peek(66):sysre
19 :
20 :data go/sub.data
22 :deffnl(i)=ga+.*usr(.);b=peek(61)+peek(62)*256:ifi=.9then:sysfnd(1)
23 :restore:if iand1 then:poke66,b/256:poke65,b-peek(66)*256
24 :forb=.to.:readb$:b=(a$<>b$):next:b=re:ifi>1then:b=ga:gosub15:b=re
25 :poke781,peek(65):poke782,peek(66):sysb
29 :
30 :data:rem---goto(zeile)+no return
31 :deffnz(i)=47078+.*usr(.);if.then:sysfnd(1)
32 :b=re:if i<.then:poke780,167:poke782,174:sys42625:b=47078
33 :poke254,58:poke255orlen(str$(i)),137:poke58,255:poke782,.:poke781,254:sysb
39 :
40 :data--go.sub.marke/adresse
41 :def fnm(i)=peek(61)+peek(62)*256+i
41 :def fng(i)=47078+.*usr(.);if.then:sysfnd(1)
42 :poke782,i/256:poke781,i-peek(782)*256:sysre
44 :data:def fns(i)=.*usr(.);if.then:sysfnd(1)
45 :gosub46:i=.:sysre
46 :poke782,i/256:poke781,i-peek(782)*256:sys47078
99 :
100 :data--aufruf
101 :a$="sub":i=fnl(3):a$="start":sysfnl(1)
102 :data sub:printa$:return
103 :data start:printa$


NACHLADEN VON PROGRAMMEN:
==========================
Da öfters nachgefragt, kommt hier noch ein Listing zum Nachladen von
Programmen. Der Name wird in a$ übergeben.

10 :a$=":*":rem---nachladen(a$)
11 :print"loada$,8:[hoch]":poke631,131:poke198,1:sys42115

Nachladen als Hintergrundprozess:

70 :poke770,125:poke771,168:poke768,61:rem poke806,60
71 fori=1to7:poke511+i,asc(mid$(":[clr]a$,8:",i)):next:poke781,.:poke782,2:sys47078

Nach dem Laden sollte man am besten alle in 70 geänderten Vektoren zurücksetzen mit sys58451.


STRING-HANDHABUNG:
===================
Mit folgenden Tricks kann man 
1. Strings kopieren oder Graphik-Strings ausgeben,
2. Speicherbereiche, wie den Graphikspeicher, schnell füllen.
3. Das String-Aufräumen, die Garbage Collection verhindern.
4. Lange Strings erzeugen
5. Die Stringadresse ermitteln
6. Feststrings auf Speicherbereiche setzen:
z.B. Eingabepuffer(512), Akku(780), Zahlenpuffer(255)

0 :goto100:rem---string handhabung
9:
20 :a$=a$+a$:on-(len(a$)*2<a)goto20:a$=a$+left$(a$,a-len(a$)):return:-gen
25 :gosub26:pokej+2,a/256:pokej+1,a-peek(j+2)*256:pokej,i:return:-set
26 :poke8,peek(71):poke9,peek(72):j=fnp(8):s=fnp(j+1):return
29 :
50 :b=a+len(a$):i=1:rem--str.copy(a,a$)
51 :gosub55:for i=-i to-1:b$=a$+"":next:goto54:-fuell
52 :b$="":gosub25:gosub55:b$=b$+"":rem--copy(a,b,i)
54 :poke50,peek(2):poke51,peek(3):poke52,peek(4):return:--reset
55 :gosub57:rem--merk+setzen
56 :dimb,b$:poke50,1:poke52,peekb/256:poke51,b-peek(52)*256:return:-setz
57 :poke3,peek(51):poke4,peek(52):poke2,peek(50):return:-merk
58 :z$="":a=257:i=7:gosub25:e$="":a=512:i=80:gosub25:d$="":a=780:i=1:goto25
59 :
100 :rem---aufrufe
101 gosub58:deffnp(i)=peek(i)+peek(i+1)*256
102 :print"[eSr]sting.kopy:"fnp(51)
110 :a$="12345":a=1064:gosub50:rem--kopieren
111 :a=a:i=5:b=a+i+10:gosub52:rem--kopy2
120 :b=51200:gosub56:rem--stapel verlegen
121 :a$="§":a=40:gosub20:gosub54:rem--str.gen
122 :b=2024:i=15:gosub51:rem--fuell
130 :a$="a":b$="b":dimc$:b=49152:gosub55:c$=a$:a$=b$:b$=c$:rem--tausch
131 :gosub54:print:printa$b$
140 :a$="":gosub57:input"eingabe:";a$:gosub54:printa$;fnp(51):rem--input
150 :c=123:printleft$(str$(c+1e7),.)z$:rem--zahl ausgeben


EINGABEN MACHEN:
================
Oft gefragt wird auch, wie man den Input-Befehl ersetzen kann.
Hierzu muß man drei Etappen bewältigen:
1. Die Programmierung des Cusorblinkens und Tastenabfrage.
2. Die Ersetzung fehlerhafter Tastenfunktionen.
3. Das Einlesen der Eingabe-Zeile mit allen Sonderzeichen.

40 :e=1:rem---line-input(a$)
41 :a=pos(.):poke198,.:fori=1to1:c=peek(209)+peek(210)*256+pos(.):b=peek(c)
42 :i=1:pokec,peek(c)+128and255:poke212,.
43 :ifpeek(198)=.then:i=i+1:on-(i<15)goto43:goto42
44 :sys61758:pokec,b:b=peek(780):c=band127:ifpos(.)=athen:ifb=20orb=157then:b=.
45 :ifb=147orb=148orb=94then:e=e+(c=19)and1:b=.: ifc>19then:print"[rechts]"chr$(20);
46 :ifc=17orc=19thenb=pos(.):sys58882:c=peek(200)-a:poke211,a-c*(b<c+a):b=.:c=b
47 :ifc<>13then:printchr$(e*148*sgn(band96))chr$(b);:i=.
48 :next
49 :
50 :rem---zeile einlesen
51 :poke214,((peek(210)and3)*256+peek(209)+a)/40:poke211,a
52 :poke631,13:poke198,1:sys42336:poke511,1:sys(43931)a$:return


RESTORE(x), GOTO(x) und FINDLINE(x)
================================
Hiermit kann man den DATA-Zeiger auf eine Zeile setzen oder
die Zeilenadresse ermitteln oder mit GOTO zu einer Zeile springen.
Zeile-66 zeigt, wie man den DATA-Zeiger im Basictext setzen kann.

60 :rem---restore.goto.findline(x)
61 :gosub65:j=j-1:poke66,j-/256:poke65,j-peek(66)*256:return:--restore(x) 
62 :gosub65:j=j-1:poke782,j/256:poke781,j-peek(782)*256:sys47078:--goto(x)
65 :poke785,19:poke786,166:sys47083x,.:j=peek(usr(95))+peek(usr(96))*256:return
66 :poke65,peek(113):poke66,peek(114):return:--restore(a$="":gosub66:)


FEHLERMELDUNGEN AUSSCHALTEN
============================
Bei INPUT+READ:
10 :poke768,157:poke769,172:poke19,1:input"a,b:";a,b:sys58451:poke19,.:return
bei LIST:
10 :poke768,174:poke769,167:list:sys58451:return
bei STOP-TASTE:
10 :poke809,241:poke808,177:rem--ein:sys64768

Hilfsmittel und Programmier-Literatur:
==========================
Hier die Liste von Progrmmierhilfen, die auch ich verwendet habe.
1. Commodore 64-Handbuch:
   Basic-Befehlsliste, Zeropage-Adressen.
2. Alte 64er-Zeitschriften:
    Adresslisten für VIC, SID, IO-Bereich, Assebler-Codes
3. Handbücher von DATA-Becker:
   -Schulbuch zum C64
   -Basic Tipps und Tricks
4.C64 Intern-Buch:
   -mit zeilenweise kommentierten ROM-LISTING.
   -C64 Betriebssystem-Code
   -Zeropage-Adress-Liste
   -Einführung in die Maschinensprache


(Dirk Breitinger)


Zu meiner Geschichte mit dem C64:
=============================
An fing natürlich alles mit einem C64II als Weihnachtsgeschenk, nächstes
Jahr dann ein 1541 II Diskettenlaufwerk.
Ich fing ich dann aus Interesse mit der Basic-Programmierung an.
Ganz klassich mit Programmen für die Schule, wie Vokabelprogramm,
Taschenrechner, Textbearbeitung und Stundenplan-Programm.
Die ich immer weiter verbesserte und erweiterte.

Da es immer wieder verschiedene Unterprogrammversionen gab, habe ich
mich dann schließlich auch mit der reinen Unterprogrammforschung
beschäftigt, woraus dann der Basic-Praxis Kurs entstanden ist, in dem
ich meine besten Unterprogramme veröffentlicht habe.

Danach versuchte ich mich dann an der Umsetzung verschiedener Spiele,
Editoren und Datenbanken, wie man an den obrigen Programmen sehen kann.
Wobei ich weitere sagenhafte Unterprogramme und Programme entwickelt habe,
so das ich immer mehr Echtzeitlösungen programmieren konnte. 
Was das Basic an Geschwindigkeit leisten kann, ist schon erstaunlich. 

Nützliche Hilfsmittel bei der C64 Programmierung sind VIC,SID, CIA und
Zeropage-Adress-Tabelle und ein ROM-Listing, ansonsten findet ihr die
wichtigsten Adressen in meinem Programmierkurs.

Meine Lieblingsspiel aus der 64er Zeit sind:
Block-Tumble, Blobber, Dark Cosmos, Atom-X, Duotris, Wizard Plus, Lethal Zone,
Tower of Terror und X-Out die ich im Zeitschriftenhandel erworben hatte.
Eine interessante Mischung aus Knobelei, Musik, Grafik und Geschicklichkeit. 

Von den neueren Spielen habe ich It´s Magic I+II, Ice Guys und Bomb Mania bei
Protovision gekauft, die auch fesseln können.
Natürlich bin ich auch ein Fan von Boulderdash, Giana-Sisters, Impossible Mission
und Besitzer der C64-CLASSIX Reihe.

Zur C64-Geschichte:
=================
Am Anfang hatte ich auch die Standard-Ausrüstung mit Datasette.
Der einzige Datenträger war eine Kassette oder ein Listing auf Papier.
In Zeitschriften wie die 64ER, die ich von Zeit zu Zeit las, waren damals
noch Programme als Basic oder Maschinencode Listing abgedruckt.

Man mußte dann tausende von Zahlen in den MSE-Monitor eingeben
bis man dann das fertige Programm abspeichern konnte.

Schließlich kam dann das Diskettenlaufwerk 1541 und die 64ER mit Heft-Diskette
und das Abtippen von Programmen wurde dadurch überflüssig.
Es erschienen nun auch neue Disketten-Magazine wie Golden-Disk oder Magic-Disk,
diie ausschließlich Spiele veröffentlichten.

Die langsamen Ladezeiten wurden schließlich durch Floppy-Speeder als
Software oder Modul erheblich verkürzt.
Ich benutzte meist RAM-EXOS, das glaub ich Programme 20 mal schneller läd. 
Mit MAGIC-COPY, das übrigens auch auf dem Emulator arbeitet, konnte man dann
auch komfortabel eigene Disketten mit seinen Lieblingsprogrammen erstellen.

Plötzlich kam die Zeit, wo die 64er und andere Disketten-Magazine nicht mehr
im Zeitschriftenhandel erhältlich waren.
Nun begann die Zeit der C64-Emulatoren auf dem PC. Und mit C64S kaufte ich
meinen ersten Emulator.
Mit TRANS64 habe ich dann meine selbstprogrammierten Programme auf die PC
Plattform gerettet.
Internet hatte ich zwar noch nicht, aber man konnte sich nun Programmsammlungen
wie die 64ER-CD, BROTKASTEN-CD oder BROTKASTEN GOLD-CD zuschicken lassen.
So daß man nun eine riesige Programmsammlung hatte.

Als auf dem Supermarkt das COMMODORE-WEBIT angeboten wurde habe ich dann
eines Tages zugegriffen. Und bin damit zum ersten Mal ins Internet gegangen.
Dadurch wurde ich auch mit dem CCS64-Emulator bekannt, der sich als Zugabe
auf diesem Computer befand .

Schließlich abonierte ich die GO64 vom CSW-Verlag.
Hier bestellte ich mir dann auch den CCS64-Emulator für den PC auf CD.
Dieser war wieder leistungsstärker, als der C64S-Emulator und wurde ständig
weiterentwickelt. Bei Protovision gab es neue Spiele und Hardware.
Später wechelte ich dann zum DIGITAL-TALK Magazin, da man hier auch
Programme veröffentlichen konnte.

Auch ein C64-DTV habe ich mir zugelegt, das einen C64 in einem Joystick
eingebaut bot und mit 4 AA-Batterien betrieben wurde.
Im Internet wurden sogar Anleitungen für einen Umbau zu einem voll
funktionsfähigen C64-Computer angeboten.

Auch Zusatzgeräte, wie IDE-64 Kartenleser wurden nun angeboten.
Dieser wurde an den C64-USERPORT angeschlossen und hatte verglichen
mit dem Diskettenlaufwerk enorme Übertragungsgeschwindigkeiten.
Mit dem SILVER SURFER konnte man glaub ich sogar ins Internet gehen.

Schließlich erschienen dann die C64-CLASSIX-CD Serie, wo man sich
mit reichlich Software eindecken konnt.
Die Programme laufen mit dem X64-VICE-EMULATOR, den man auch umsonst im
Netz herunterladen kann.

Als letztes erschien mit dem EMU64 nun auch ein neuer Emulator.
Und auch ich habe schließlich eine Homepage mit C64 Programmen eingerichtet.

Schönen Gruß an alle.