C-64

http://sites.schaltungen.at/commodore-c64/c-64

http://www.linksammlung.info/

http://www.schaltungen.at/

                                                                                             Wels, am 2017-09-22

BITTE nützen Sie doch rechts OBEN das Suchfeld  [                                                              ] [ Diese Site durchsuchen]

DIN A3 oder DIN A4 quer ausdrucken
*******************************************************************************I**
DIN A4  ausdrucken   siehe     http://sites.schaltungen.at/drucker/sites-prenninger
********************************************************I*
~015_b_PrennIng-a_commodore.c64-c.64 (xx Seiten)_1a.pdf



COMMODORE c-64 C64 C 64   1982 bis 1986





Commodore 64  STAND 1984
38 K Ram für Basic,
52 K Ram für Maschinensprache,
Farbgrafikauflösung 320 X 200 Punkte,
3 Tongeneratoren (je 8 Oktaven),
Basic inkludiert,
zusätzlich: Assembler, Pascal, Fortran, Comal, Logo, Pilot, Simons Basic, G-Basic
jetzt nur ATS 6.298,-

Diskettenstation Commodore VC 1541
5 1/4 Zoll, direkt anschließbar (VC-20, C-64),
170K formatiert
jetzt nur ATS 6.490,-

Commodore 64 + Diskettenstation VC 1541
Set  jetzt nur ATS 12.490,-





********************************************************I*
bit's & Bytes

Der Prozessor im COMMODORE 16 heißt 7501, er ist ein Nachfolgetyp des 6502 und ein 8-bit Prozessor.
Mit jeder Speicherstelle werden also vom Prozessor gleichzeitig 8 bits angesprochen, ein 'Byte'.

Mit 8 bits lassen sich Zahlenwerte von 0-255 darstellen, nämlich 2*2*2*2 * 2*2*2*2 = 2 hoch 8 verschiedene, weil jedes bit unabhängig von den anderen die 2 Zustände 0 oder 1 annehmen kann.
Dieser Zahlenbereich ist bei PEEK- und POKE-Befehlen zu beachten, die den Inhalt einzelner Speicherstellen auslesen bzw. neu setzen.

Ein 8-bit-Prozessor kann maximal 65536 = 2 hoch 16 Speicherstellen verwalten.
Der Adreßbereich umfaßt die Adressen 0 bis 65535 (bei PEEK, POKE und SYS zu beachten).
Dieser Umfang kommt dadurch zustande, daß der Rechner zur Speicheradressierung jeweils 2 Bytes, also insgesamt 16 bits, verwendet, die er ggf. nacheinander aus dem Programmspeicher holen muß (z.B. bei Adressierungsart 'absolut').

z.B. bei Verwendung der USR-Funktion muß man diese beiden Bytes (die die Anfangsadresse der eigenen Maschinenroutine angeben) selbst auf 2 aufeinanderfolgende Speicherstellen (Poirter). schreiben.
Die beiden Adreßbytes werden unterschieden in das Lo-Byte, das die unteren 8 Binärstellen der insgesamt ja 16-stelligen Adresse aufnimmt, und das Hi-Byte mit den oberen 8 Binärstellen.
Dadurch hat das HI-Byte  gegenüber dem Lo-Byte eine 256-fache Wertigkeit.
Allgemein muß bei diesem Prozessortyp die sog. 'Lo-Hi-Reihenfolge' eingehalten werden.
Dabei liegt das Lo-Byte im Speicher direkt vor dem Hi-Byte!

Zerlegung einer Adresse AD in Lo- und Hi-Byte:
HI = INT( AD / 256 ): LO = AD - 256 * HI
Ermittlung einer vollen Adresse AD aus Lo-  und Hi-Byte:
AD = Lo + 256 * Hi
Setzen eines Pointers in P und P+1 auf den Wert AD:
HI=INT(AD/256):LO=AD-256*HI:POKE P,  LO:POKE P+1,HI
Lesen eines Pointers aus P und P+1 in die Variable AD:
AD = PEEK( P ) + 256 * PEEK( P+1 )

Wie man leicht erkennt, ist die dezimale Schreibweise für Binärzahlen sehr umständlich.
Daher wurden die 'Hexadezimal'-Zahlen eingeführt.
In der dezimalen Stellenschreibweise ist ja eine Stelle jeweils 10mal mehr wert als die rechts davon, weil eine Stelle 10 verschiedene Werte (0-9) annehmen kann.
Im Hexadezimalsystem werden je 4 Bits (ein 'Nibble')  zu einer Stelle, einer Hexadezimalziffer, zusammengefaßt.
Durch 4 Bits können aber 16 verschiedene Zahlenwerte (0-15) dargestellt werden,
d.h. die 10 herkömmlichen Dezimalziffern reichen nicht aus.
Für die neuen Hex-Ziffern mit den Wertigkeiten 10-15 wurden daher die Buchstaben A-F ausgewählt,.
In der hexadezimalen Stellen-Schreibweise ist folgerichtig eine Stelle jeweils 16mal mehr wert als die rechts davon (16*16=256, 16*256=4096, 16*4096=65536).
Hex-Zahlen werden zur Unterscheidung mit einem vorangestellten Dollarzeichen ($) gekennzeichnet,
z.B. $0F = 15 (dez.!) oder $51 = 81 = 5*16+1.


Ein Byte umfaßt 8 bits, also zwei Hexstellen, und kann Werte von $00 bis $FF (= 0 bis 15*16+15 = 255) annehmen.
Eine Adresse aus 2 Bytes umfaßt 4 Hexstellen mit Werten von $0000 bis $FFFF (= 0 bis 15*4096+15*256+15*16+15*1 = 65535).

% 0111 = Nibble


$7               D           9           5
  7x4096 + 13x 256 + 9x 16 + 5x1 = 32149
  % 0111     1101       1001      0101


Umrechnung Hex nach Dezimal:
z.B. $7D95
              5x 1
          +9x16
       +13 x256
   +7x4096 = 32149 = DEC( "7D95" )

Umrechnung Dezimal nach Hex:
Zuerst ggf. wie oben in LO- und HI-Byte zerlegen.
Innerhalb jedes Bytes BY Zerlegung in LO-Nibble LN und HI-Nibble HN:
HN = INT( BY / 16 ): LN = BY - 16 * HN
Umwandlung in Hexziffer:    PRINT HEX$(Dezimalzahl)

Bei reinen Binärzahlen ist eine Stelle jeweils nur 2mal mehr wert als die rechts davon (Kennzeichnung durch vorangestelltes %).
In BASIC können Zahlen, die bis zu 16stelligen Binärzahlen entsprechen, dürch die Operatoren AND, OR und NOT binärverknüpft werden.
Zur Wirkungsweise dieser Befehle muß immer die Binärdarstellung der beteiligten Zahlen klar sein:

Umrechnung Binär nach Dezimal:
z.B.    %1111 = 1*8 + 1*4 + 1*2 + 1*1 = 15
          %1001 = 8 + 0 + 0 + 1 = 9

Verknüpfung durch Operatoren:
z.B.    5 OR 7 = %101 OR %111 = %111 = 7
          3 AND 6 = %011 AND %110 = %010 = 2

Bei der Negation NOT wird das 'Zweierkomplement' gebildet (bitweise Invertierung und Addition von 1):

NOT 10 = NOT %0000 0000 0000 1010
            =   %1111 1111 1111 0101 + 1
            =    %1111 1111 1111 0110
            =    -11    (neg. Zahl wegen gesetztem höchsten Bit),
NOT -1 = 0          (BASIC-Werte für 'wahr' und 'falsch').

Einheit KByte:    1 KByte = 1024 Bytes = (2 hoch 10) Bytes
Das K ist groß zu schreiben, um es vom herkömmlichen k (für kilo Faktor 1000) zu unterscheiden:
1 KByte = 1,024 kByte    und    64 KByte = 65,536 kByte  

#329 Dezimal = %0111 Dual = $7D Hex



Tabellen und Umrechnungen
Mit Hilfe der Umrechnungstabelle lassen sich auch leicht vierstellige Hexadezimal-zahlen in Dezimalwerte umrechnen.
Man braucht nur die beiden höherwertigen Ziffern (Highbyte) und die beiden niederwertigen (Lowbyte) getrennt nachzusehen, und die zugehörigen Dezimalwerte in folgende Formel einzusetzen:

(Dezimalwert) = (Lowbyte) + 256    (Highbyte)

Soll beispielsweise $COFA in eine Dezimalzahl umgewandelt werden, ergibt sich

(Dezimalwert) = $FA    + 256  *  $C0
also                  250    + 256  * 192 = 49402
Natürlich geht das auch in der umgekehrten Richtung.
Um eine Hexadezimalzahl aus einer Dezimalgröße zu erhalten, rechnet man zuerst High- und dann Lowbyte aus.
Die entsprechenden Formeln sind:

(Highbyte)    =    INT ((Dezimalwert) / 256)
(Lowbyte)    =    (Dezimalwert) - ((Highbyte) * 256)

Zu beiden Werten wird anschließend die Hexadezimalzahl nachgeschaut und zum 4-stelligen Wert zusammengesetzt.

Auch hierzu ein Beispiel mit 49154:
(Highbyte)    = INT(192,007813) = 192 = $C0
(Lowbyte)    = 49154 — 49152    =    2 = $02

Damit ergibt sich die gesuchte Hexadezimalzahl zu $C002.




********************************************************I*
                         C-64 Platine






Spezial-ICs für Commodore C-64/C
Typ/Gerät            Ident.-Nr.             Funktion    Stück
8361 AGNitJ8      252152-01           Video/DMA CO-Proz.    85.-
NTSC
8362 DENISE      252126-01           Grafik CO-Proz.    72.-
8384 PAULA        252127-01          I/O, Audio CO-Proz.    85,-
8367 ANUS         252362-01         Video/DMA    120.-
PAL
8520A                252146-01         CIA    29.80
8005-045             251913-01          Kernal + Basic/C64 C128 27.-
8005-053 Kernal  315078-01                                                27.-
MMU 8722         310389-01                                             48.-
8721 PLA           315012-01           PLA    46.50
8563R 9              315014-01        CRT    110.-
8502                   315020-01           CPU    35.-
8566 R 3            318009-01           VIC    70.-
6526 A                906108-01            CIA    20.50
8701                   251527-02          OZL    48.-
6001-250           901225-01           Char-ROM    29.50
6004-161           901226-01          Basic-ROM    29.80
7000-273           901227-03             Kernal ROM    32.50
6510A               906107-01          8-Bit-CPU    19.80
6526                906108-01            CIA    20.50
6569A             902111-01           PAL (VIC)    69.-
6581               906112-02           SID Sound-Chip    39.-
82 S 100         906114-01            PLA Adressenmanager 17.50
8580               318013-01            SID Sound-Chip    35.-
8565 PAL         318027-01           VIC/C 64 11    72.-
MEMORY-CONTROLLER       251715-01                                 32.-

Typ/Gerät Ident.-Nr. Funktion    Stück
6529 B               251640-03    8.50
8360                   251535-02    98.-
8501                  251536-01
7501 = 8501
16L 8 PAL           380211-06                                    39.80
2364-130             325302-01         ROM VC             40.-
LOGIC ARRAY 40 PIN  325572-01 VC 1541'    39.80

7000-265           901229-05           ROM VC    35.-
23128 ROM     251968-01                                24.50
6523 =6525 A   901401-02                            14.50
dehe
6525A             901343-01                             14.50
8005-044          318008-01             ROM    79.-
GATE ARRAY   251828-01                            36.-
40 PIN
GATE ARRAY 20 PIN    251829-01                        26.-

6525A               901343-01                                  14.50


Spezial-ICs für Commodore C 64
Typ                 Ident.-Nr.            Funktion                       Stück
16L 8 PAL       380211-06          PC 10                              39.80
Logic Array     325572-01         VC 1541                         39.80
82S 100           906114-01         PLA Adressenmanager 17.50
2364-130          325302-01         ROM VC 1541             40.-
6001-250        901225-01         Char-ROM                     29.50
6004-161        901226-01          Basic-ROM                29.80
6510 AP           906107-01         8 Bit-CPU/C 64         19.80   Prozessor
6526AP         906108-01          CIA/C 64                   20.50   CIA
6567                                                                                  VIC
6569 AP       902111-01           PAL (VIC)/C 64          69.-
6581          906112-02           SID/C64 Sound-Chip    39.-    SID
7000-265     901223-05         ROM VC 1541              35.-
7000-273     901227-03            Kernal ROM/C 64     32.50
8360                                      C 16                       98.-
8501             251536-01           C 16                        34.-
8502             315020-01          CPU/C 128                35.-
8520                                    CIA                             29.80
8563R9          315014-01      CRT/C 128                   110.-
8566 R3         318009-01         VIC/C 128                    70.-
8701             251527-02      OZL/C 128                        48.-
8721            315012-01        PLA/C 128                   46.50
8722              310389-01        NMU/C 128                48.—
MOS 901 225-01   ROM
MOS 906 114-01  PLA



600_d_C64-x_commodore 1541 Diskettenstation - Schaltplan § 325572-0 6522 2364 6502_1a.pdf

Schaltplan 64'er  Heft 1986-09s86
600_d_C64-x_commodore 64  C-64 - Schaltplan § MPU6510A CIA6526 ROM2364A RAM4164-2 VIC6567 SID6581 PLA825100_1a.pdf

600_d_C64-x_commodore 64  C-64 - Netzteil 5V-1,7A  9V-1A 18VA_1a.pdf

C-64 Platine 64'er  Heft 1989-04s26
C-64 Platine 64'er  Heft 1986-09s130
C-64-II  Platine 64'er  Heft 1987-09s09


600_d_64'er-x_1986-09s124  Wie funktioniert ein Computer C-64_1a.pdf


DIN A4  ausdrucken
********************************************************I*
Impressum: Fritz Prenninger, Haidestr. 11A, A-4600 Wels, Ober-Österreich, mailto:[email protected]
ENDE