Hallo Besucher, der Thread wurde 5,1k mal aufgerufen und enthält 30 Antworten

letzter Beitrag von Telespielator am

Neu hier + Frage

  • Zitat

    Bei Rev. 1 taucht in der linken oberen Bildschirmecke der Buchstabe A in weiß auf,
    bei Rev. 2 gar nicht* und bei Rev. 3 (die große Mehrheit
    aller verkauften C64) ist das A dann hellblau.


    Ist wirklich sehr schön. :)
    Stimmt eventuell sogar, denn die 4064 (Educator 64) hatten ein ROM das penetrant auf weiss gewechselt ist. Man mag das als entsprechende ROM Revision durchgehen lassen, wenn auch unter Schmerzen. Gerade heute sollet man vielleicht hinzufügen, dass alle möglichen Erweiterungen (Action Replay, Nordic Power und andere) auch mit dem Farbspeicher rumfummeln. Generell das A zu sehen ist aber immer gut - Funzt das RAM da wenigstens. :)


    Kennt eigtl. jemand einen entsprechenden Artikel, Binärvergleich oder ähnliches zwischen Original ROM und was auch immer (JD, SpeedDos, Exos oder auch den einzelnen original Revisionen)?

  • Wie alt mein gerät ist, konnte ich mir durch dieses Forum bereits beantworten ( c.a. 41-44 KW 1991 ). Nun musste ich allerdings feststellen
    das mein Gerät ein Revision A gerät ist was ich durch den Poke 1024,1 Befehl herausgefunden habe.
    Nun frage ich mich allerdings wie ein Bj 1991 C64 ein Revision A gerät sein kann.

    *ROFL* Au Backe, wer auch immer Dir diesen "Tipp" gegeben hat: hau ihm ordentlich eine runter.


    EDIT: Achso, so findet man natürlich NICHT die Revision des Boards herraus. POKE 1024,1 schreibt einfach den Buchstaben A links oben auf den Bildschirm! Immer!

    :schreck!: :@1@: :Ssshock: Wer erzählt Dir denn so eine Sch****, der hat wohl ein bißchen zuviel :drink: .

  • :schreck!: :@1@: :Ssshock: Wer erzählt Dir denn so eine Sch****, der hat wohl ein bißchen zuviel :drink: .

    Ich schätze mal, hier handelt es sich einfach um ein Missverständnis. Anhand dieses Pokes bzw. an der Farbe des in der oberen Ecke auftauchenden "A" kann die Revision des KERNALS feststellen. Üblich ist ein hellblaues "A", daran erkennt man die weit verbreitete Revision 3. Bei den Revisionen 1 und 2 ist das "A" aufgrund von einem Bug in diesem Bereich entweder weiß oder dunkelblau (d.h. unsichtbar).


    Die Revisionsnummer des BOARDS wurde hier schon genannt; es ist die ASSY 250469. :)


    CU
    Kratznagel

  • Der Bug der Urversion ist relativ einfach zu erklären. Wenn bei der fehlerhaften Kernelversion für das Zeichen (hier eben A) kein Farbwert angegeben wird, hat das Zeichen die Hintergrundfarbe. Also blaues A auf blauem Hintergrund und ist somit nicht sichtbar. Diese Version gab es nur 1982, alle weiteren Kernels haben diesen Bug nicht.
    Dein Rechner ist also gut 9 Jahre zu neu um diesen Fehler haben zu können. Deine Kernelversion ist die Rev. 3, wie sie 99,9% aller C64 haben. Rev.1 ist die fehlerhafte NTSC-Version, Rev.2 die fehlerhafte PAL-Version, Rev. 3 die korrigierte "neue" Version.


  • Kennt eigtl. jemand einen entsprechenden Artikel, Binärvergleich oder ähnliches zwischen Original ROM und was auch immer (JD, SpeedDos, Exos oder auch den einzelnen original Revisionen)?


    etwas licht:


    This document lists MD5 signatures of the files, as reported by the
    "md5sum" utility of GNU textutils, and should provide enough
    information to reconstruct any published version of the system
    firmware from a copy of one published version of the Commodore 64
    system firmware.


    8c37b056c00a44c0725508b8cedbbefb 64c.251913-01.bin


    The 251913-01, used in newer versions of the Commodore 64 and some
    versions of the Commodore 128, is a 16-kilobyte 23128 ROM chip. It
    contains the Commodore 64 BASIC interpreter ($A000-$BFFF,
    corresponding to the 8-kilobyte 2364 ROM chip 901226-01) and the
    Commodore 64 KERNAL ($E000-$FFFF, corresponding to the 8-kilobyte 2364
    ROM chip 901227-03) in that order.


    049e657afafbdd802e8c6a4f88f3d730 64gs.390852-01.bin


    The 390852-01, used in the ill-fated Commodore 64GS game console based
    on the BN/E circuit board, is a 16-kilobyte chip similar to the
    251913-01. This one was archived from a 27128 EPROM 27128 EPROM chip
    in a West German machine DA5 016014E, assy no. 250469, 252311 rev.B.
    The chip has the label © 1984, 90 CBM / 390852-01 / C64GS ROM CS=DF34.
    The BASIC part corresponds otherwise to 901226-01, but the 30 unused
    bytes at $BF53-$BF70 are filled with $00 instead of $AA. The KERNAL
    part has been modified from the 901227-03, and most modifications are
    in the area $F72C-$FC92, which also contains a copyright message.
    Many jumps have been redirected to $FB4D, which in turn jumps to
    $F707, which in turn triggers I/O error #5.


    57af4ae21d4b705c2991d98ed5c1f7b8 basic.901226-01.bin


    Commodore 64 BASIC V2. The first and essentially only revision,
    located at $A000-$BFFF. In the 64GS system firmware, the 30 unused
    bytes at $BF53-$BF70 are filled with $00 instead of $AA. In the
    Commodore 65 firmware, these bytes are filled with $FF.


    da92801e3a03b005b746a4dd0b639c7c kernal.4064.901246-01.bin


    This 8-kilobyte ROM has been reported in various machines (4064,
    PET64, EDUCATOR64), which are versions of the Commodore 64 built in a
    PET case with an integrated monochrome monitor. The system interrupt
    routine resets sprite, background and border colors to black unless
    the high-order bit of the location 646 (cursor colour, $0286) is set. Using
    any colour command resets location 646 and, therefore, the colors.
    The differences from 901227-02 are as follows. Note that some patches
    of 901227-03 are included.


    $E42D-$E42F: (printing the start-up message)
    901227-02: JSR $AB1E
    901246-01: JMP $E441 (do not print " BASIC BYTES FREE\r")
    $E477: (first part of start-up message)
    901227-02: " **** COMMODORE 64 BASIC V2 ****\r\r 64K RAM SYSTEM \0"
    901246-01: "**** COMMODORE 4064 BASIC V2.0 ****\r\r\0 "
    $E4AC: (checksum byte?)
    901227-02: $5C
    901246-01: $63
    $E4C8: (patch: reset the colours unless the high-order bit of 646 is set)
    901227-02: filled with eighteen $AA bytes
    901246-01: BIT $286:BMI *+12:LDA #0:LDX #14:STA $D020,X:DEX:BPL *-4:JMP $EA87
    $E535: (default cursor colour)
    901227-02: $0E (light blue)
    901246-01: $01 (white)
    $E57C-$E599: (compute screen address)
    901227-02: LDA $D9,X:AND #3:ORA $288:STA $D2:LDA $ECF0,X:STA $D1:LDA #$27
    INX:LDY $D9,X:BMI *+8:CLC:ADC #$28:INX:BPL *-8:STA $D5:RTS
    901246-01: JSR $E9F0:LDA #$27:INX:LDY $D9,X:BMI *+8:CLC:ADC #$28:INX:BPL *-8:
    STA $D5:JMP $EA24:CPX $C9:BEQ *+5:JMP $E6ED:RTS:NOP
    $E621:
    901227-02: JSR $E6ED
    901246-01: JSR $E591
    $EA7B: (patch to reset the colours)
    901227-02: JSR $EA87
    901246-01: JSR $E4C8
    $ECD9-$ECE6: (initial values of video chip registers at $D020-$D03E)
    901227-02: 14, 6, 1, 2, 3, 4, 0, 1, 2, 3, 4, 5, 6, 7
    901246-01: 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
    $F81E: (check the high-order bit of $9D before message output)
    901227-02: JSR $F12F
    901246-01: JSR $F12B
    $F82B: (check the high-order bit of $9D before message output)
    901227-02: JMP $F12F
    901246-01: JMP $F12B
    $FF80: (KERNAL version identifier)
    901227-02: $00
    901246-01: $64
    $FFF8: (unused bytes)
    901227-02: "BY" (initials of Bob Yannes?)
    901246-01: $00, $00

  • Teil 2:


    1ae0ea224f2b291dafa2c20b990bb7d4 kernal.901227-01.bin


    This 8-kilobyte 2364 ROM is the first revision of the Commodore 64
    KERNAL. The RS-232 timing table is designed for exactly 1 MHz system
    clock frequency, although no C64 runs at that clock rate. Unlike
    later KERNAL revisions, this one does not detect the video system
    (PAL/NTSC). This KERNAL was probably only used in early North
    American Commodore 64 units. The differences from the second revision
    are as follows.


    $E118: (output a character from BASIC)
    901227-01: JSR $FFC9
    901227-02: JSR $E4AD
    $E4AC: (checksum byte?)
    901227-01: $2B
    901227-02: $5C
    $E4AD-$E4B7: (patch area)
    901227-01: filled with $AA
    901227-02: PHA:JSR $FFC9:TAX:PLA:BCC *+3:TXA:RTS
    $E4DA-$E4DF: (patch for "clear screen" routine)
    901227-01: filled with $AA
    901227-02: LDA $D021:STA ($F3),Y:RTS
    $E4E0-$E4EB: (patch: wait for keypress or timeout)
    901227-01: filled with $AA
    901227-02: ADC #$2:LDY $91:INY:BNE *+6:CMP $A1:BNE *-7:RTS
    $E4EC-$E4FF: (patch area, RS-232 speed table for PAL systems)
    901227-01: filled with $AA
    901227-02: $2619, $1944, $111A, $0DE8, $0C70, $0606, $02D1, $0137, $00AE, $0069
    $EA0B: (set the character colour when clearing the screen)
    901227-01: LDA #1:STA ($F3),Y
    901227-02: JSR $E4DA:NOP
    $ECCA-$ECCB: (initial values of video chip registers at $D011-$D012)
    901227-01: $1B, $00 (raster compare at line 0)
    901227-02: $9B, $37 (raster compare at line 311)
    $ECD2: (initial value of video chip register at $D019)
    901227-01: $00
    901227-02: $0F (acknowledge all VIC-II interrupts)
    $F428-$F44C: (set up RS-232 timing)
    901227-01: BNE *+13:LDA $295:ASL:TAY:LDA $296:JMP $F43F
    ASL:TAX:LDA $FEC0,X:ASL:TAY:LDA $FEC1,X:ROL
    PHA:TYA:ADC #$C8:STA $299:PLA:ADC #$0:STA $29A
    901227-02: BEQ *+30:ASL:TAX:LDA $2A6:BNE *+11
    LDY $FEC1,X:LDA $FEC0,X:JMP *+9
    LDY $E4EB,X:LDA $E4EA,X
    STY $296:STA $295:LDA $295:ASL:JSR $FF2E
    $F459: (set up RS-232 emulation)
    901227-01: JMP $F00D
    901227-02: JSR $F00D
    $F761: (wait for keypress after displaying FOUND)
    901227-01: LDA $91:CMP #$FF:BEQ *-4 (wait indefinitely)
    901227-02: LDA $A1:JSR $E4E0:NOP (wait for a key or timeout)
    $FCFB: (RESET routine)
    901227-01: JSR $E518 (initialise I/O)
    901227-02: JSR $FF5B (JSR $E518 and detect PAL/NTSC)
    $FDDD-$FDF7: (initialise system timer)
    901227-01: LDA #$1B:STA $DC04:LDA #$41:STA $DC05:LDA #$81:STA $DC0D
    LDA $DC0E:AND #$80:ORA #$11:STA $DC0E:JMP $EE8E
    ; at 60 Hz, the clock rate would be ($411B+1)*60=1000080 Hz
    901227-02: LDA $2A6:BEQ *+12
    LDA #$25:STA $DC04:LDA #$40:JMP *+10
    LDA #$95:STA $DC04:LDA #$42
    STA $DC05:JMP $FF6E
    ; at 60 Hz, PAL clock rate would be ($4025+1)*60=985320 Hz
    ; and NTSC clock rate would be ($4295+1)*60=1024680 Hz
    ; (the actual values are 17734472/18=985248 and 14318181/14=1022727)
    $FEC2-$FED5: (RS-232 speed table for 1 MHz timing, or for NTSC systems)
    901227-01: $26AC, $19A7, $115D, $0E1F, $0CA1, $061F, $02DD, $013D, $00B2, $006C
    901227-02: $27C1, $1A3E, $11C5, $0E74, $0CED, $0645, $02F0, $0146, $00B8, $0071
    $FF07-$FF42: (timer initialisation for RS-232 emulation)
    901227-01: LDA $293:AND #$F:BNE *+14:LDA $295:STA $DD06:LDA $296:JMP *+14
    ASL:TAX:LDA $FEC0,X:STA $DD06:LDA $FEC1,X
    STA $DD07:LDA #$11:STA $DD0F:LDA #$12:EOR $2A1:STA $2A1:LDA #$FF
    STA $DD06:STA $DD07:LDX $298:STX $A8:RTS
    901227-02: LDA $295:STA $DD06:LDA $296:STA $DD07:LDA #$11:STA $DD0F
    LDA #$12:EOR $2A1:STA $2A1:LDA #$FF:STA $DD06:STA $DD07
    LDX $298:STX $A8:RTS
    TAX:LDA $296:ROL:TAY:TXA:ADC #$C8:STA $299:TYA:ADC #0:STA $29A:RTS
    NOP:NOP
    $FF5B-$FF7F: (patch: detect PAL/NTSC and initialise system timer)
    901227-01: filled with $AA
    901227-02: JSR $E518:LDA $D012:BNE *-3:LDA $D019:AND #$1:STA $2A6:JMP $FDDD
    $FF80: (KERNAL version identifier)
    901227-01: $AA (really a fill byte)
    901227-02: $00
    $FF81: CINT vector
    901227-01: JMP $FF5B
    901227-02: JMP $E518


    7360b296d64e18b88f6cf52289fd99a1 kernal.901227-02.bin
    39065497630802346bce17963f13c092 kernal.901227-03.bin


    These 8-kilobyte 2364 ROMs are the second and third revision of the
    Commodore 64 KERNAL. These are the most widely spread versions. The
    differences are as follows:


    $E4AC: (checksum byte?)
    901227-02: $5C
    901227-03: $81
    $E4D3: (patch)
    901227-02: $AA, $AA, $AA, $AA, $AA, $AA, $AA
    901227-03: STA $A9:LDA #1:STA $AB:RTS
    $E4DA: (get the character colour for clearing the screen memory)
    901227-02: LDA $D021 (background colour)
    901227-03: LDA $286 (cursor colour)
    $E57C-$E599: (compute screen address)
    901227-02: LDA $D9,X:AND #3:ORA $288:STA $D2:LDA $ECF0,X:STA $D1:LDA #$27
    INX:LDY $D9,X:BMI *+8:CLC:ADC #$28:INX:BPL *-8:STA $D5:RTS
    901227-03: JSR $E9F0:LDA #$27:INX:LDY $D9,X:BMI *+8:CLC:ADC #$28:INX:BPL *-8:
    STA $D5:JMP $EA24:CPX $C9:BEQ *+5:JMP $E6ED:RTS:NOP
    $E621:
    901227-02: JSR $E6ED
    901227-03: JSR $E591
    $EA07-$EA12: (fill screen line with spaces)
    901227-02: LDA #$20:STA ($D1),Y:JSR $E4DA:NOP:DEY:BPL *-9:RTS
    901227-03: JSR $E4DA:LDA #$20:STA ($D1),Y:DEY:BPL *-8:RTS:NOP
    $EF94: (jump to patch)
    901227-02: STA $A9:RTS
    901227-03: JMP $E4D3
    $FF80: (KERNAL version identifier)
    901227-02: $00
    901227-03: $03


    187b8c713b51931e070872bd390b472a kernal.sx.251104-04.bin


    This 8-kilobyte ROM is the Commodore SX-64 KERNAL, which is based on
    901227-03. The differences are as follows.


    $E479: (start-up message)
    901227-03: "**** COMMODORE 64 BASIC V2 ****"
    251104-04: " ***** SX-64 BASIC V2.0 *****"
    $E4AC: (checksum byte?)
    901227-03: $81
    251104-04: $B3
    $E535: (default cursor colour)
    901227-03: $0E (light blue)
    251104-04: $06 (dark blue)
    $E5EE: (length of the string expansion of the key combination Shift+STOP)
    901227-03: 9 ("LOAD\rRUN\r")
    251104-04: 15 ("LOAD\":*\",8\rRUN\r")
    $E5F3: (pointer to the string expansion of the key combination Shift+STOP)
    901227-03: LDA $ECE6,X
    251104-04: LDA $F0D7,X
    $ECD9-$ECE6: (initial screen colours $D020-$D021)
    901227-03: 14, 6 (light blue and dark blue)
    251104-04: 3, 1 (cyan and white, like the VIC-20)
    $F0D7: (string area)
    901227-03: "\rPRESS PLAY ON "
    251104-04: "LOAD\":*\",8\rRUN\r"
    $F386: (OPEN, checking the device number)
    901227-03: BNE $F38B
    251104-04: BNE $F390 (report ILLEGAL DEVICE NUMBER for tape)
    $F4B6: (LOAD, checking the device number)
    901227-03: BCC $F533 (check if the device number is 1, for tape)
    251104-04: BCC $F4AF (report ILLEGAL DEVICE NUMBER for devices 0..3)
    $F5F8: (SAVE, checking the device number)
    901227-03: BCC $F659 (check if the device number is 1, for tape)
    251104-04: BCC $F5F1 (report ILLEGAL DEVICE NUMBER for devices 0..3)
    $FF80: (KERNAL version identifier)
    901227-03: $03
    251104-04: $43


    October 8, 2003
    Marko Mäkelä (msmakela@nic.funet.fi)

  • Ohne jetzt den ganzen Thread gelesen zu haben gebe ich zu bedenken, daß bei Commodore stets das verbaut wurde, was gerade da war. Ganz unmöglich ist es ja nicht, daß noch irgendwo ein paar alte Kernals aufgetaucht sind, die dann halt der laufenden Produktion hinzugefügt wurden. Außerdem kann es ja sein, daß bei einer Reparatur ein alter Rechner ausgeschlachtet wurde und so ein altes Kernal in einen neuen Cevi gelangt ist...!