| |
chatGPZ
Registered: Dec 2001 Posts: 11386 |
what is your RAM init pattern?
since i stumbled about yet another case of some ancient demo that relies on uninitialized RAM - and which would only work if you change the default VICE uses currently - i think its about time to collect some hard data about this phenomenon and perhaps at the end add proper configuration for it to VICE (or even choose a better default).
background: when you power on your C64, the RAM will not be zero, instead (about) half of the RAM cells will be 1, and the other half will be 0. this results in some kind of pattern (mostly) consisting of $00 and $ff. for example if you start VICE, then enter the monitor and look at a page of RAM it shows this:
(C:$e5d4) m c000 c0ff
>C:c000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
>C:c010 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
>C:c020 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
>C:c030 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
>C:c040 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ................
>C:c050 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ................
>C:c060 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ................
>C:c070 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ................
>C:c080 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
>C:c090 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
>C:c0a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
>C:c0b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
>C:c0c0 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ................
>C:c0d0 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ................
>C:c0e0 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ................
>C:c0f0 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ................
this is the default pattern, which could be shortened to "64 times $00, 64 times $ff, repeat"
now i'd like to know how it looks like on your (real) C64... if you have some cartridge with ML monitor, all you need to do is power on your c64, check some memory page, and post the pattern here (you can ignore that some values wont actually be 0 or $ff - what matters is the general trend). additionally it would be extra cool if you could look into your C64 and post the type of RAM chips that it uses as well (since the pattern most likely depends on them) - they are labelled 4164 or 4464 or 41464 (please post everything written on it, the exact type and manufacturer is interesting here). Also please post the ASSY NO of the board, as the way RAM is wired up matters as well.
thanks for your help!
PS: if you are curious, Typical is the demo in question... if you can name other examples ("works in CCS64 but not in VICE is often an indicator for it), please post them too! |
|
... 47 posts hidden. Click here to view all posts.... |
| |
Pitcher
Registered: Aug 2006 Posts: 61 |
Quote: Heres a sample, have photos if needed of full dumps, both from a cold start after being sat in the cuboard, last used 1 week+ ago.
Bread bin 1 - 1983 - assy 250407 - serial B1442003
has had some chips changed by the looks of things
C000 -
00 FF EE FF 00 00 00 EB
FF 00 FF 41 EE E2 FF 00
EE 00 FF FF FF 00 FF 00
EE 00 FF 00 FF 00 FF 00
00 FF FF FF EA A3 EF 40
EB EF FF 21 00 C0 FF E3
EF 00 FF A0 FF 00 FF 00
Bread bin 2 - 1984 - assy 250425 - serial B2399395
c000 -
FF 00 FF 00 FF 00 FF 00
FF 00 FF 00 FF 00 FF 00
FF 00 FF 00 77 00 FF 00
FF 88 75 00 FF 00 FF 00
FF 00 FF 00 FF 00 FF 00
FF 00 DF 00 FF 00 FF 00
FF 00 FF 00 FF 00 FF 00
Breadbin 1 - mn4164p
3n6-15
Breadbin 2 - mn4164p
4d1-15 |
| |
JackAsser
Registered: Jun 2002 Posts: 2014 |
Coding my own emu (don't ask why) and I just noticed that the KERNEL relies on uninitiated memory. Check this small startup dump of the KERNEL:
FCE2 A2 LDX #$FF A:00 X:00 Y:00 P:24 SP:FD
FCE4 78 SEI A:00 X:FF Y:00 P:A4 SP:FD
FCE5 9A TXS A:00 X:FF Y:00 P:A4 SP:FD
FCE6 D8 CLD A:00 X:FF Y:00 P:A4 SP:FF
FCE7 20 JSR $FD02 A:00 X:FF Y:00 P:A4 SP:FF
FD02 A2 LDX #$05 A:00 X:FF Y:00 P:A4 SP:FD
FD04 BD LDA $FD0F,X A:00 X:05 Y:00 P:24 SP:FD
FD07 DD CMP $8003,X A:30 X:05 Y:00 P:24 SP:FD
FD0A D0 BNE $FD0F A:30 X:05 Y:00 P:24 SP:FD
FD0F 60 RTS A:30 X:05 Y:00 P:24 SP:FD
FCEA D0 BNE $FCEF A:30 X:05 Y:00 P:24 SP:FF
FCEF 8E STX $D016 A:30 X:05 Y:00 P:24 SP:FF
FCF2 20 JSR $FDA3 A:30 X:05 Y:00 P:24 SP:FF
FDA3 A9 LDA #$7F A:30 X:05 Y:00 P:24 SP:FD
FDA5 8D STA $DC0D A:7F X:05 Y:00 P:24 SP:FD
FDA8 8D STA $DD0D A:7F X:05 Y:00 P:24 SP:FD
FDAB 8D STA $DC00 A:7F X:05 Y:00 P:24 SP:FD
FDAE A9 LDA #$08 A:7F X:05 Y:00 P:24 SP:FD
FDB0 8D STA $DC0E A:08 X:05 Y:00 P:24 SP:FD
FDB3 8D STA $DD0E A:08 X:05 Y:00 P:24 SP:FD
FDB6 8D STA $DC0F A:08 X:05 Y:00 P:24 SP:FD
FDB9 8D STA $DD0F A:08 X:05 Y:00 P:24 SP:FD
FDBC A2 LDX #$00 A:08 X:05 Y:00 P:24 SP:FD
FDBE 8E STX $DC03 A:08 X:00 Y:00 P:26 SP:FD
FDC1 8E STX $DD03 A:08 X:00 Y:00 P:26 SP:FD
FDC4 8E STX $D418 A:08 X:00 Y:00 P:26 SP:FD
FDC7 CA DEX A:08 X:00 Y:00 P:26 SP:FD
FDC8 8E STX $DC02 A:08 X:FF Y:00 P:A4 SP:FD
FDCB A9 LDA #$07 A:08 X:FF Y:00 P:A4 SP:FD
FDCD 8D STA $DD00 A:07 X:FF Y:00 P:24 SP:FD
FDD0 A9 LDA #$3F A:07 X:FF Y:00 P:24 SP:FD
FDD2 8D STA $DD02 A:3F X:FF Y:00 P:24 SP:FD
FDD5 A9 LDA #$E7 A:3F X:FF Y:00 P:24 SP:FD
FDD7 85 STA $01 A:E7 X:FF Y:00 P:A4 SP:FD
FDD9 A9 LDA #$2F A:E7 X:FF Y:00 P:A4 SP:FD
FDDB 85 STA $00 A:2F X:FF Y:00 P:24 SP:FD
FDDD AD LDA $02A6 A:2F X:FF Y:00 P:24 SP:FD
FDE0 F0 BEQ $FDEC A:FF X:FF Y:00 P:A4 SP:FD
Right there at $FDDD!!! What the fuck? :)
Kind regards, Andreas |
| |
Flavioweb
Registered: Nov 2011 Posts: 463 |
Code at $FDDD is executed twice during reset:
$FF5B/65371: Initialize screen editor
Jump from $FCFB, $FF81:
FF5B: 20 18 E5 JSR $E518 ; Initialize I/O
Jump from $FF61:
FF5E: AD 12 D0 LDA $D012 ; VIC: Raster Position
FF61: D0 FB BNE $FF5E
FF63: AD 19 D0 LDA $D019 ; VIC: Interrupt Request Register (IRR)
FF66: 29 01 AND #$01
FF68: 8D A6 02 STA $02A6 ; Flag: TV Standard
FF6B: 4C DD FD JMP $FDDD ; Enable Timer
first "setup" is overwritten by the second call at $FDDD |
| |
JackAsser
Registered: Jun 2002 Posts: 2014 |
yes, ok, still bad design. More over, when autostarting files the timing between c64 / vic may vary depending on men init. Can be good to know. :) |
| |
chatGPZ
Registered: Dec 2001 Posts: 11386 |
please.... keep that thread free from offtopic (make a new thread, its interesting afterall :)) - but post your own RAM init pattern! we really need more data! |
| |
JackAsser
Registered: Jun 2002 Posts: 2014 |
Quote: please.... keep that thread free from offtopic (make a new thread, its interesting afterall :)) - but post your own RAM init pattern! we really need more data!
Sorry! :) |
| |
Flavioweb
Registered: Nov 2011 Posts: 463 |
I have a ram dump from a breadbin with ceramic ram chips:
https://dl.dropboxusercontent.com/u/93655104/CeramicRAM.zip
At powerup
0000:0000 | 00 00 00 7E FF FF 7E 7E FF FF 7E 7E FF FF 7E 7E | ...~ÿÿ~~ÿÿ~~ÿÿ~~
0000:0010 | FF FF 7E 7E FF FF 7E 7E FF FF 7E 7E FF FF 7E FF | ÿÿ~~ÿÿ~~ÿÿ~~ÿÿ~ÿ
0000:0020 | 83 81 00 71 00 81 00 00 81 81 00 00 81 81 00 71 | ...q...........q
0000:0030 | 83 81 00 00 89 81 00 00 81 81 00 00 81 81 00 0A | ................
0000:0040 | FF FF 7E 7E FF FF 7E 7E FF FF 7E 7E FF FF 7E 7E | ÿÿ~~ÿÿ~~ÿÿ~~ÿÿ~~
0000:0050 | FF FF 7E 7F FF FF 7F 7E FF FF 7E 7E FF FF 7E 7E | ÿÿ~.ÿÿ.~ÿÿ~~ÿÿ~~
0000:0060 | 81 81 00 00 81 81 00 00 81 81 00 60 81 83 00 00 | ...........`....
0000:0070 | 71 83 00 00 81 81 00 04 81 81 00 00 83 40 75 00 | q............@u.
0000:0080 | DF FF 7E 7E FF FF 7E 7E FF FF 7E 7E FF FF 7E 7E | ßÿ~~ÿÿ~~ÿÿ~~ÿÿ~~
0000:0090 | FF FF 7E 7E FF FF 7E 7E FF FF 7E 7E FF FF 7E FF | ÿÿ~~ÿÿ~~ÿÿ~~ÿÿ~ÿ
0000:00A0 | 8F 81 00 71 81 81 00 00 81 81 00 00 81 81 00 71 | ...q...........q
0000:00B0 | 8B 81 00 00 89 81 00 00 81 81 00 00 81 81 00 0A | ................
0000:00C0 | FF FF 7E 7E FF FF 7E 7E FF FF 7E 7E FF FF 7E 7E | ÿÿ~~ÿÿ~~ÿÿ~~ÿÿ~~
0000:00D0 | FF FF 7E 7F FF FF 7B 7E FF FF 7E 7E FF FF 7E 7E | ÿÿ~.ÿÿ{~ÿÿ~~ÿÿ~~
0000:00E0 | 81 81 00 00 81 81 00 00 81 81 00 74 81 83 00 00 | ...........t....
0000:00F0 | 51 83 00 00 81 81 00 04 81 81 00 00 81 01 75 00 | Q.............u.
0000:0100 | 76 7E FF FF 7E 7E FF FF 7E 7E FF FF 7E 7E FF FF | v~ÿÿ~~ÿÿ~~ÿÿ~~ÿÿ
0000:0110 | 7E 7E FF FF 7E 7E FF FF 7E 7E FF FF 7E 7E FF 7E | ~~ÿÿ~~ÿÿ~~ÿÿ~~ÿ~
0000:0120 | 06 00 81 F0 81 00 81 81 00 00 81 81 00 00 81 F0 | ...ð...........ð
0000:0130 | 02 00 81 81 08 00 81 81 00 00 81 81 00 00 81 8B | ................
0000:0140 | 7E 7E FF FF 7E 7E FF FF 7E 7E FF FF 7E 7E FF FF | ~~ÿÿ~~ÿÿ~~ÿÿ~~ÿÿ
0000:0150 | 7E 7E FF FE 7E 7E FE FF 7E 7E FF FF 7E 7E FF FF | ~~ÿþ~~þÿ~~ÿÿ~~ÿÿ
0000:0160 | 00 00 81 81 00 00 81 81 00 00 81 F1 00 02 81 81 | ...........ñ....
0000:0170 | F0 02 81 81 00 00 81 85 00 00 81 81 02 C1 F4 81 | ð............Áô.
0000:0180 | 5A 7E FF FF 7E 7E FF FF 7E 7E FF FF 7E 7E FF FF | Z~ÿÿ~~ÿÿ~~ÿÿ~~ÿÿ
0000:0190 | 7E 7E FF FF 7E 7E FF FF 7E 7E FF FF 7E 7E FF 7E | ~~ÿÿ~~ÿÿ~~ÿÿ~~ÿ~
0000:01A0 | 0A 00 81 50 00 00 81 81 00 00 81 81 00 00 81 50 | ...P...........P
0000:01B0 | 0A 00 81 81 08 00 81 81 00 00 81 81 00 00 81 8B | ................
0000:01C0 | 7E 7E FF FF 7E 7E FF FF 7E 7E FF FF 7E 7E FF FF | ~~ÿÿ~~ÿÿ~~ÿÿ~~ÿÿ
0000:01D0 | 7E 7E FF 7E 7E 7E DA FF 7E 7E FF FF 7E 7E FF FF | ~~ÿ~~~Úÿ~~ÿÿ~~ÿÿ
0000:01E0 | 00 00 81 81 00 00 81 81 00 00 81 F1 00 02 81 81 | ...........ñ....
0000:01F0 | 50 02 81 81 00 00 81 85 00 00 81 81 00 C0 F4 81 | P............Àô.
Filling ram with $FF then turned off and on after 30 secs:
0000:0000 | 00 00 00 8A FF FF 7E 7E FF FF 7E 7E 8B FF 7E 7E | ....ÿÿ~~ÿÿ~~.ÿ~~
0000:0010 | FF FF 7E 7E FF FF 7E 7E FF FF 7E 7E FF FF 7E 8A | ÿÿ~~ÿÿ~~ÿÿ~~ÿÿ~.
0000:0020 | 81 80 0C 00 81 81 00 00 E1 81 C0 00 81 81 00 00 | ........á.À.....
0000:0030 | 81 81 00 54 81 81 00 00 81 81 00 00 41 81 00 00 | ...T........A...
0000:0040 | FF FF 7E FF FF FF 7E 7E FF 9F 7E FF FF FF 7E 7E | ÿÿ~ÿÿÿ~~ÿ.~ÿÿÿ~~
0000:0050 | FF FF 7E 7E FF FF 7E 7E FF FF 7E 7E EE FF 7E 7E | ÿÿ~~ÿÿ~~ÿÿ~~îÿ~~
0000:0060 | 81 81 00 80 81 81 00 00 81 81 00 00 81 81 80 74 | ...............t
0000:0070 | 81 81 00 00 81 81 00 00 81 81 00 06 83 81 00 00 | ................
0000:0080 | FF FF 3E 8F FF FF 7E 7E FF FF 7E 7E 8F FF 7E 7E | ÿÿ>.ÿÿ~~ÿÿ~~.ÿ~~
0000:0090 | FF FF 7E 7E FF FF 7E 7E FF FF 7E 7E FF FF 7E 0B | ÿÿ~~ÿÿ~~ÿÿ~~ÿÿ~.
0000:00A0 | 81 81 0C 00 81 81 00 00 F5 81 A0 00 81 81 00 00 | ........õ. .....
0000:00B0 | 81 81 02 54 81 81 00 00 81 81 00 00 01 81 00 00 | ...T............
0000:00C0 | FF FF 7E FE FF FF 7E 7E FF 9F 7E FE FF FF 7E 7E | ÿÿ~þÿÿ~~ÿ.~þÿÿ~~
0000:00D0 | FF FF 7E 7E FF FF 7E 7E FF FF 7E 7E FF FF 7E 7E | ÿÿ~~ÿÿ~~ÿÿ~~ÿÿ~~
0000:00E0 | 81 81 00 00 81 81 00 00 81 81 00 00 81 81 80 74 | ...............t
0000:00F0 | 81 81 00 00 A1 81 00 00 81 81 00 0C 81 81 00 00 | ....¡...........
0000:0100 | 7E 7E BF 1A 7E 7E FF FF 7E 7E FF FF 0A 7E FF FF | ~~¿.~~ÿÿ~~ÿÿ.~ÿÿ
0000:0110 | 7E 7E FF FF 7E 7E FF FF 7E 7E FF FF 7E 7E FF 0A | ~~ÿÿ~~ÿÿ~~ÿÿ~~ÿ.
0000:0120 | 00 00 8D 81 00 00 81 81 70 00 61 81 00 00 81 81 | ........p.a.....
0000:0130 | 00 00 81 D5 00 00 81 81 00 00 81 81 D0 00 81 81 | ...Õ........Ð...
0000:0140 | 7E 7E FF 7E 7E 7E FF FF 7E 5E FF 7E 7E 7E FF FF | ~~ÿ~~~ÿÿ~^ÿ~~~ÿÿ
0000:0150 | 7E 7E FF FF 7E 7E FF FF 7E 7E FF FF 7E 7E FF FF | ~~ÿÿ~~ÿÿ~~ÿÿ~~ÿÿ
0000:0160 | 00 00 81 01 00 00 81 81 00 00 81 81 00 00 01 F5 | ...............õ
0000:0170 | 00 00 81 81 20 00 81 81 00 00 81 87 02 00 81 81 | .... ...........
0000:0180 | 7E 7E BF 0B 7E 7E FF FF 7E 7E FF FF 0A 7E FF FF | ~~¿.~~ÿÿ~~ÿÿ.~ÿÿ
0000:0190 | 7E 7E FF FF 7E 7E FF FF 7E 7E FF FF 7E 7E FF 8B | ~~ÿÿ~~ÿÿ~~ÿÿ~~ÿ.
0000:01A0 | 00 01 8D 81 00 00 81 81 50 00 41 81 00 00 81 81 | ........P.A.....
0000:01B0 | 00 00 83 D5 00 00 81 81 00 00 81 81 C0 00 81 C1 | ...Õ........À..Á
0000:01C0 | 7E 7E FF 7F 7E 7E FF DF 7E 5E FF 7F 7E 7E FF FF | ~~ÿ.~~ÿß~^ÿ.~~ÿÿ
0000:01D0 | 7E 7E FF FF 7E 7E FF FF 7E 7E FF FF 5E 7E FF FF | ~~ÿÿ~~ÿÿ~~ÿÿ^~ÿÿ
0000:01E0 | 00 00 81 81 00 00 81 81 00 00 81 81 00 00 01 F5 | ...............õ
0000:01F0 | 00 00 81 81 20 00 81 81 00 00 81 8D 00 00 81 81 | .... ........... |
| |
chatGPZ
Registered: Dec 2001 Posts: 11386 |
thanks! |
Previous - 1 | 2 | 3 | 4 | 5 | 6 - Next |