|
http://sites.schaltungen.at/commodore-c64/c-64
Wels, am 2017-09-22BITTE 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
% 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 |



