Date: Fri Jun 17 16:38:46 1994
Received: from funet.fi by oulu.fi (4.1/SMI-4.1)
6.2 Commodore 64 KERNAL ROM versions.
Below is information on differences between the Commodore 64
KERNAL revisions R1, R2, R3 and the Commodore SX-64 and the
Commodore 4064 ROMs. The chronological order must be R1, R2, 4064,
R3 and SX-64.
The KERNAL ROM R1 was obviously used only in early NTSC systems.
It lacks the PAL/NTSC detection, and always uses white color while
clearing the screen. The white color feature is from the VIC-20
ROM, but the VIC had a white background by default. Thus, this
feature can be listed as a bug. The CIA 1 timer A will always
divide the system clock through $411C == 16668. The other ROMs use
the values $4026 an $4296, depending on the system version
(PAL/NTSC), so their interrupt frequency is 985248 Hz / 16422 ==
59.996 Hz or 1022727 Hz / 17046 == 59.998 Hz. Note that both
clock divisor values differ from the value used in the KERNAL R1.
The PAL/NTSC flag ($2A6) affects the RS-232 timer settings as well.
It seems that the new RS-232 tables for the PAL have been created on
the upper BASIC interpreter area ($E000--$E4FF), from the address
$E4EC on. Surprisingly also the original NTSC tables have been
changed. Very probably the units running the KERNAL R1 had a slower
clock frequency. Extrapolating from the interrupt timer values,
they ran at 1.0000 MHz. Now this makes sense, since the first
(NTSC) video chips had 262 lines per frame and 64 cycles per line.
The frame rate was thus 1 MHz / 262 / 64 == 59.637 Hz. The newer
NTSC units run at 1022727 Hz and draw 263 lines per frame and use 65
cycles per line. This produces a frame rate of 59.826 Hz. Well,
now it is very obvious that there has been at least one mother board
type that has only been used on NTSC units. Probably the processor
clock was created from a 8 MHz chrystal frequency, which served as
the dot clock. The latter NTSC units generate the processor clock
by dividing the chrystal frequency of 14318181 Hz by 14, and the dot
clock will be generated by octacoupling the processor clock.
The PAL systems have been developed later, and they always run at
the same clock frequency, 17734472 Hz / 18. The frame rate has
always been 17734472 Hz / 312 / 63 == 50.125 Hz on those puppies.
The changes in the latter ROM revisions were mainly cosmetical.
There were some bugs corrected in the R3 revision, though.
Format for list:
Address: 901227-01 (Commodore 64 KERNAL R1, $FF80 content $AA)
901227-02 (Commodore 64 KERNAL R2, $FF80 content $00)
901227-03 (Commodore 64 KERNAL R3, $FF80 content $03)
??????-?? (SX-64 or DX-64 KERNAL, $FF80 content $43)
??????-?? (4064 aka PET 64 aka Educator 64, $FF80 content $64)
E119: C9, FF
AD, E4
AD, E4
AD, E4
AD, E4
E42D: 20, 1E, AB
20, 1E, AB
20, 1E, AB
20, 1E, AB
4C, 41, E4
E477: 20, 20, 2A, 2A, 2A, 2A, 20, 43, 4F, 4D, 4D, 4F, 44, 4F, 52, 45,
20, 20, 2A, 2A, 2A, 2A, 20, 43, 4F, 4D, 4D, 4F, 44, 4F, 52, 45,
20, 20, 2A, 2A, 2A, 2A, 20, 43, 4F, 4D, 4D, 4F, 44, 4F, 52, 45,
20, 20, 20, 2A, 2A, 2A, 2A, 2A, 20, 20, 53, 58, 2D, 36, 34, 20,
2A, 2A, 2A, 2A, 20, 43, 4F, 4D, 4D, 4F, 44, 4F, 52, 45, 20, 34,
-: 20, 36, 34, 20, 42, 41, 53, 49, 43, 20, 56, 32, 20, 2A, 2A, 2A,
20, 36, 34, 20, 42, 41, 53, 49, 43, 20, 56, 32, 20, 2A, 2A, 2A,
20, 36, 34, 20, 42, 41, 53, 49, 43, 20, 56, 32, 20, 2A, 2A, 2A,
42, 41, 53, 49, 43, 20, 56, 32, 2E, 30, 20, 20, 2A, 2A, 2A, 2A,
30, 36, 34, 20, 20, 42, 41, 53, 49, 43, 20, 56, 32, 2E, 30, 20,
-: 2A, 0D, 0D, 20, 36, 34, 4B, 20, 52, 41, 4D, 20, 53, 59, 53, 54,
2A, 0D, 0D, 20, 36, 34, 4B, 20, 52, 41, 4D, 20, 53, 59, 53, 54,
2A, 0D, 0D, 20, 36, 34, 4B, 20, 52, 41, 4D, 20, 53, 59, 53, 54,
2A, 0D, 0D, 20, 36, 34, 4B, 20, 52, 41, 4D, 20, 53, 59, 53, 54,
2A, 2A, 2A, 2A, 0D, 0D, 00, 20, 20, 20, 20, 20, 20, 20, 20, 20,
-: 45, 4D, 20, 20, 00, 2B
45, 4D, 20, 20, 00, 5C
45, 4D, 20, 20, 00, 81
45, 4D, 20, 20, 00, B3
20, 20, 20, 20, 20, 63
E4AD: AA, AA, AA, AA, AA, AA, AA, AA, AA, AA
48, 20, C9, FF, AA, 68, 90, 01, 8A, 60
48, 20, C9, FF, AA, 68, 90, 01, 8A, 60
48, 20, C9, FF, AA, 68, 90, 01, 8A, 60
48, 20, C9, FF, AA, 68, 90, 01, 8A, 60
E4C8: AA, AA, AA, AA, AA, AA, AA, AA, AA, AA, AA, AA, AA, AA, AA, AA,
AA, AA, AA, AA, AA, AA, AA, AA, AA, AA, AA, AA, AA, AA, AA, AA,
AA, AA, AA, AA, AA, AA, AA, AA, AA, AA, AA, 85, A9, A9, 01, 85,
AA, AA, AA, AA, AA, AA, AA, AA, AA, AA, AA, 85, A9, A9, 01, 85,
2C, 86, 02, 30, 0A, A9, 00, A2, 0E, 9D, 20, D0, CA, 10, FA, 4C,
-: AA, AA, AA, AA, AA, AA, AA, AA, AA, AA, AA, AA, AA, AA, AA, AA,
AA, AA, AD, 21, D0, 91, F3, 60, 69, 02, A4, 91, C8, D0, 04, C5,
AB, 60, AD, 86, 02, 91, F3, 60, 69, 02, A4, 91, C8, D0, 04, C5,
AB, 60, AD, 86, 02, 91, F3, 60, 69, 02, A4, 91, C8, D0, 04, C5,
87, EA, AD, 21, D0, 91, F3, 60, 69, 02, A4, 91, C8, D0, 04, C5,
-: AA, AA, AA, AA, AA, AA, AA, AA, AA, AA, AA, AA, AA, AA, AA, AA,
A1, D0, F7, 60, 19, 26, 44, 19, 1A, 11, E8, 0D, 70, 0C, 06, 06,
A1, D0, F7, 60, 19, 26, 44, 19, 1A, 11, E8, 0D, 70, 0C, 06, 06,
A1, D0, F7, 60, 19, 26, 44, 19, 1A, 11, E8, 0D, 70, 0C, 06, 06,
A1, D0, F7, 60, 19, 26, 44, 19, 1A, 11, E8, 0D, 70, 0C, 06, 06,
-: AA, AA, AA, AA, AA, AA, AA, AA
D1, 02, 37, 01, AE, 00, 69, 00
D1, 02, 37, 01, AE, 00, 69, 00
D1, 02, 37, 01, AE, 00, 69, 00
D1, 02, 37, 01, AE, 00, 69, 00
E535: 0E
0E
0E
06
01
E57C: B5, D9, 29, 03, 0D, 88, 02, 85, D2, BD, F0, EC, 85, D1, A9, 27,
B5, D9, 29, 03, 0D, 88, 02, 85, D2, BD, F0, EC, 85, D1, A9, 27,
20, F0, E9, A9, 27, E8, B4, D9, 30, 06, 18, 69, 28, E8, 10, F6,
20, F0, E9, A9, 27, E8, B4, D9, 30, 06, 18, 69, 28, E8, 10, F6,
20, F0, E9, A9, 27, E8, B4, D9, 30, 06, 18, 69, 28, E8, 10, F6,
-: E8, B4, D9, 30, 06, 18, 69, 28, E8, 10, F6, 85, D5, 60
E8, B4, D9, 30, 06, 18, 69, 28, E8, 10, F6, 85, D5, 60
85, D5, 4C, 24, EA, E4, C9, F0, 03, 4C, ED, E6, 60, EA
85, D5, 4C, 24, EA, E4, C9, F0, 03, 4C, ED, E6, 60, EA
85, D5, 4C, 24, EA, E4, C9, F0, 03, 4C, ED, E6, 60, EA
E5EF: 09
09
09
0F
09
E5F4: E6, EC
E6, EC
E6, EC
D7, F0
E6, EC
E622: ED, E6
ED, E6
91, E5
91, E5
91, E5
EA07: A9, 20, 91, D1, A9, 01, 91, F3, 88, 10, F5, 60
A9, 20, 91, D1, 20, DA, E4, EA, 88, 10, F5, 60
20, DA, E4, A9, 20, 91, D1, 88, 10, F6, 60, EA
20, DA, E4, A9, 20, 91, D1, 88, 10, F6, 60, EA
A9, 20, 91, D1, 20, DA, E4, EA, 88, 10, F5, 60
ECCA: 1B, 00
9B, 37
9B, 37
9B, 37
9B, 37
ECD2: 00
0F
0F
0F
0F
ECD9: 0E, 06, 01, 02, 03, 04, 00, 01, 02, 03, 04, 05, 06, 07
0E, 06, 01, 02, 03, 04, 00, 01, 02, 03, 04, 05, 06, 07
0E, 06, 01, 02, 03, 04, 00, 01, 02, 03, 04, 05, 06, 07
03, 01, 01, 02, 03, 04, 00, 01, 02, 03, 04, 05, 06, 07
00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00
EF94: 85, A9, 60
85, A9, 60
4C, D3, E4
4C, D3, E4
85, A9, 60
F0D8: 0D, 50, 52, 45, 53, 53, 20, 50, 4C, 41, 59, 20, 4F, 4E, 20
0D, 50, 52, 45, 53, 53, 20, 50, 4C ,41, 59, 20, 4F, 4E, 20
0D, 50, 52, 45, 53, 53, 20, 50, 4C ,41, 59, 20, 4F, 4E, 20
4C, 4F, 41, 44, 22, 3A, 2A, 22, 2C, 38, 0D, 52, 55, 4E, 0D
0D, 50, 52, 45, 53, 53, 20, 50, 4C ,41, 59, 20, 4F, 4E, 20
F387: 03
03
03
08
03
F428: D0, 0B, AD, 95, 02, 0A, A8, AD, 96, 02, 4C, 3F, F4, 0A, AA, BD,
F0, 1C, 0A, AA, AD, A6, 02, D0, 09, BC, C1, FE, BD, C0, FE, 4C,
F0, 1C, 0A, AA, AD, A6, 02, D0, 09, BC, C1, FE, BD, C0, FE, 4C,
F0, 1C, 0A, AA, AD, A6, 02, D0, 09, BC, C1, FE, BD, C0, FE, 4C,
F0, 1C, 0A, AA, AD, A6, 02, D0, 09, BC, C1, FE, BD, C0, FE, 4C,
-: C0, FE, 0A, A8, BD, C1, FE, 2A, 48, 98, 69, C8, 8D, 99, 02, 68,
40, F4, BC, EB, E4, BD, EA, E4, 8C, 96, 02, 8D, 95, 02, AD, 95,
40, F4, BC, EB, E4, BD, EA, E4, 8C, 96, 02, 8D, 95, 02, AD, 95,
40, F4, BC, EB, E4, BD, EA, E4, 8C, 96, 02, 8D, 95, 02, AD, 95,
40, F4, BC, EB, E4, BD, EA, E4, 8C, 96, 02, 8D, 95, 02, AD, 95,
-: 69, 00, 8D, 9A, 02
02, 0A, 20, 2E, FF
02, 0A, 20, 2E, FF
02, 0A, 20, 2E, FF
02, 0A, 20, 2E, FF
F459: 4C
20
20
20
20
F4B7: 7B
7B
7B
F7
7B
F5F9: 5F
5F
5F
F7
5F
F762: 91, C9, FF, F0, FA
A1, 20, E0, E4, EA
A1, 20, E0, E4, EA
A1, 20, E0, E4, EA
A1, 20, E0, E4, EA
F81F: 2F
2F
2F
2F
2B
F82C: 2F
2F
2F
2F
2B
FCFC: 18, E5
5B, FF
5B, FF
5B, FF
5B, FF
FDDD: A9, 1B, 8D, 04, DC, A9, 41, 8D, 05, DC, A9, 81, 8D, 0D, DC, AD,
AD, A6, 02, F0, 0A, A9, 25, 8D, 04, DC, A9, 40, 4C, F3, FD, A9,
AD, A6, 02, F0, 0A, A9, 25, 8D, 04, DC, A9, 40, 4C, F3, FD, A9,
AD, A6, 02, F0, 0A, A9, 25, 8D, 04, DC, A9, 40, 4C, F3, FD, A9,
AD, A6, 02, F0, 0A, A9, 25, 8D, 04, DC, A9, 40, 4C, F3, FD, A9,
-: 0E, DC, 29, 80, 09, 11, 8D, 0E, DC, 4C, 8E, EE
95, 8D, 04, DC, A9, 42, 8D, 05, DC, 4C, 6E, FF
95, 8D, 04, DC, A9, 42, 8D, 05, DC, 4C, 6E, FF
95, 8D, 04, DC, A9, 42, 8D, 05, DC, 4C, 6E, FF
95, 8D, 04, DC, A9, 42, 8D, 05, DC, 4C, 6E, FF
FEC2: AC, 26, A7, 19, 5D, 11, 1F, 0E, A1, 0C, 1F, 06, DD, 02, 3D, 01,
C1, 27, 3E, 1A, C5, 11, 74, 0E, ED, 0C, 45, 06, F0, 02, 46, 01,
C1, 27, 3E, 1A, C5, 11, 74, 0E, ED, 0C, 45, 06, F0, 02, 46, 01,
C1, 27, 3E, 1A, C5, 11, 74, 0E, ED, 0C, 45, 06, F0, 02, 46, 01,
C1, 27, 3E, 1A, C5, 11, 74, 0E, ED, 0C, 45, 06, F0, 02, 46, 01,
-: B2, 00, 6C
B8, 00, 71
B8, 00, 71
B8, 00, 71
B8, 00, 71
FF08: 93, 02, 29, 0F, D0, 0C, AD, 95, 02, 8D, 06, DD, AD, 96, 02, 4C,
95, 02, 8D, 06, DD, AD, 96, 02, 8D, 07, DD, A9, 11, 8D, 0F, DD,
95, 02, 8D, 06, DD, AD, 96, 02, 8D, 07, DD, A9, 11, 8D, 0F, DD,
95, 02, 8D, 06, DD, AD, 96, 02, 8D, 07, DD, A9, 11, 8D, 0F, DD,
95, 02, 8D, 06, DD, AD, 96, 02, 8D, 07, DD, A9, 11, 8D, 0F, DD,
-: 25, FF, 0A, AA, BD, C0, FE, 8D, 06, DD, BD, C1, FE, 8D, 07, DD,
A9, 12, 4D, A1, 02, 8D, A1, 02, A9, FF, 8D, 06, DD, 8D, 07, DD,
A9, 12, 4D, A1, 02, 8D, A1, 02, A9, FF, 8D, 06, DD, 8D, 07, DD,
A9, 12, 4D, A1, 02, 8D, A1, 02, A9, FF, 8D, 06, DD, 8D, 07, DD,
A9, 12, 4D, A1, 02, 8D, A1, 02, A9, FF, 8D, 06, DD, 8D, 07, DD,
-: A9, 11, 8D, 0F, DD, A9, 12, 4D, A1, 02, 8D, A1, 02, A9, FF, 8D,
AE, 98, 02, 86, A8, 60, AA, AD, 96, 02, 2A, A8, 8A, 69, C8, 8D,
AE, 98, 02, 86, A8, 60, AA, AD, 96, 02, 2A, A8, 8A, 69, C8, 8D,
AE, 98, 02, 86, A8, 60, AA, AD, 96, 02, 2A, A8, 8A, 69, C8, 8D,
AE, 98, 02, 86, A8, 60, AA, AD, 96, 02, 2A, A8, 8A, 69, C8, 8D,
-: 06, DD, 8D, 07, DD, AE, 98, 02, 86, A8, 60
99, 02, 98, 69, 00, 8D, 9A, 02, 60, EA, EA
99, 02, 98, 69, 00, 8D, 9A, 02, 60, EA, EA
99, 02, 98, 69, 00, 8D, 9A, 02, 60, EA, EA
99, 02, 98, 69, 00, 8D, 9A, 02, 60, EA, EA
FF5B: AA, AA, AA, AA, AA, AA, AA, AA, AA, AA, AA, AA, AA, AA, AA, AA,
20, 18, E5, AD, 12, D0, D0, FB, AD, 19, D0, 29, 01, 8D, A6, 02,
20, 18, E5, AD, 12, D0, D0, FB, AD, 19, D0, 29, 01, 8D, A6, 02,
20, 18, E5, AD, 12, D0, D0, FB, AD, 19, D0, 29, 01, 8D, A6, 02,
20, 18, E5, AD, 12, D0, D0, FB, AD, 19, D0, 29, 01, 8D, A6, 02,
-: AA, AA, AA, AA, AA, AA, AA, AA, AA, AA, AA, AA, AA, AA, AA, AA,
4C, DD, FD, A9, 81, 8D, 0D, DC, AD, 0E, DC, 29, 80, 09, 11, 8D,
4C, DD, FD, A9, 81, 8D, 0D, DC, AD, 0E, DC, 29, 80, 09, 11, 8D,
4C, DD, FD, A9, 81, 8D, 0D, DC, AD, 0E, DC, 29, 80, 09, 11, 8D,
4C, DD, FD, A9, 81, 8D, 0D, DC, AD, 0E, DC, 29, 80, 09, 11, 8D,
-: AA, AA, AA, AA, AA
0E, DC, 4C, 8E, EE
0E, DC, 4C, 8E, EE
0E, DC, 4C, 8E, EE
0E, DC, 4C, 8E, EE
FF80: AA
00
03
43
64
FF82: 18, E5
53, FF
53, FF
53, FF
53, FF
FFF8: 42, 59
42, 59
42, 59
42, 59
00, 00
               (
geocities.com/timessquare/arcade/Arcade/2045/docs)                   (
geocities.com/timessquare/arcade/Arcade/2045)                   (
geocities.com/timessquare/arcade/Arcade)                   (
geocities.com/timessquare/arcade)                   (
geocities.com/timessquare)