yeah..... green screen
(started about 10 times or so...)
Hallo Besucher, der Thread wurde 57k mal aufgerufen und enthält 314 Antworten
letzter Beitrag von Peto74 am
Unicart64 - The FPGA based cartridge for Commodore 64
- Peto74
- Erledigt
-
-
crazy, no error ???
noooo, I wanted to see error . -
OK, RAM2TEST showed error, there is used STA $DF00,X instruction.
STA & CMP are not immediately executed. Look at the code ...; write $00..$FF
; --------------LDX #$00 ; clear
_loop1:
TXA ; copy X to A
STA $DF00,X ; save data byte
DEX ; decrement pointer
BNE _loop1 ; loop; check $00..$FF
; --------------_loop2:
TXA ; copy X to A
CMP $DF00,X ; compare data byte
BNE _err ; error, jumpDEX ; decrement pointer
BNE _loop2 ; loopHWERROR uses STA $DF00 instruction. Is this difference ?
_loop1:
_wait0:
BIT cSCAN_CMD_STATUS ; read status
BMI _wait0 ; jump, waiting for scanner to be ready to read dataSTY _tempY ; save Y register
INX ; increment value
TXA ; copy X to ALDY #$06 ; scanner mode
STY cSCAN_CMD_STATUS ; set command, start scannerSTA $DF00 ; save data byte
CMP $DF00 ; compare data byte
BNE _end_err ; error, jumpLDY _tempY ; load Y register
DEY ; decrement counter
BNE _loop1 ; loopSo maybe I will try to use STA $DF00,X ... ???
-
OK, hwerr2, only changed
STA $DF00 --> STA $DF00,X
CMP $DF00 --> CMP $DF00,X
HWERR2.zipYou can check in monitor, if there is pattern 00, 01, 02 ... FF in memory DF00..DFFF.
by command
.M DF00
then cursor down to see more lines ...crazy, or is it workaround ???
pls. check RAM2TEST #175 with this fw, HWERROR, HWERR2 ... pattern in DF00.
Thank you. -
ok, here are the results:
HWERR2: Red border
Pattern: 00 01 02 03 04 05 06 07HWERROR: green border
Pattern: FF 01 02 03 04 05 06 07RAM2TEST: Red border, error 10
Pattern: 00 01 02 03 04 05 06 07after the first line the patterns are identical:
08 09 0A 0B 0C 0D 0E 0F
and so on.... -
Thanks, thats really interesting !
HWERROR uses only DF00 address, writes values 00..FF(last one) only into DF00, so the first byte is FF. No pattern.
Visible pattern is from previous HWERR2 !So, we only know there is problem ... but is it because STA $DF00,X ? Or it is also for STA $DF00, but never for address xx00 ?
Next time we can test it. If only STA $DF00,X is not working we could have workaround.OK, back to HWERR2.
Please, wait for Red screen and save me binary $6000...$7FFF, pls. Thanks. -
OK, back to HWERR2.
Please, wait for Red screen and save me binary $6000...$7FFF, pls. Thanks.I mean to continue, HWERR2 red screen & post #180, steps 5-7 ... I'm looking forward for the first sampled scanner data of STA $DF00,X.
Thanks ! -
-
Thanks, cool, I'm analysing data.
-
So, here is instruction STA $DF00,X writing to SRAM when "HW error" comes. It takes 5 clocks.
The 5th clocks writes value to the address, better to say during halfclock when O2=1 (or PHI2=1), CPU on the bus.
Thanks to scanner & borstie, just look at this 5th halfclock.
Note: I have deleted leading 2 bytes, starting PRG address $6000, not part of the sampled data.dump0001-250407-sta-df00-x-expl.png
The blue strip shows the O2=1, CPU on the bus, offsets 760-828.
2nd column (marked red) is C64 data bus, here must be stable value $FD writing to address $DFFD.
Instead of this here are unstable (?) values: $F5, $05, $75, $FD etc. And this is problem !!!
My controller copied the value in my sync point to chip memory data bus, instead of $FD, there is $F5 (marked green).
The rest is correct, wrong value $F5 is there 6 clocks (50MHz), /CS & /WE only 5 clocks (value $7A on 5th column, 5x20ns=100ns).
Address is also stable, except offset 7E8, when I copied value $7A to the mem bus (strong disturbing).
Hmm, I have to think about this. -
At the beginning of the sampled data you can see end of "start scanner" instruction STA $DEE0,
Mode value $06 nice stable on the C64 data bus on the 2nd column,
C64 address $DEE0 on the 3rd, 4th columns !
dump0001-250407-sta-dee0-start-scanner.png -
Comparing 2 error dumps I see the similarities in disturbing ... interesting.
relative from sync point (marked blue) there are correct values in +2, +4, +5 lines.
dump0001-250407-sta-df00-x-expl-compare.png -
very interesting... an internal logic analyzer... cool
...and thanks for describing the technical background, i appreciate that...
If you need more dumps please let me know...
-
very interesting... an internal logic analyzer... cool
Yeah, FPGA is powerfull, so why not to use it . I ask myself only, why I didn't develop it sooner ?
-
...and thanks for describing the technical background, i appreciate that...
You're welcome.
I have also retested meantime on my ASSY 469 the same data write with the similar values. No disturbing at all, everything nice stable.
So I have some ideas, but I need to think about it.FYI:
In next 2 weeks I will be not able to test on my C64 due to house repairing. But I will be able sometimes to produce & compile fw/prgs etc. on my laptop . -
no problem, take all the time you need... i will wait...
-
Hi,
Please, try to test HWERR2 like before using these 2 experimental FWs.
UC64_2019-03-18-hwerror-rd.zip
UC64_2019-03-18-hwerror-rw.zipMy theory is that some signal from assy board must be unstable and FW reacts badly by switching read/write from/to C64 bus.
So, probably disturbing comes from my FPGA.
This responsible controller is the main one. Every change can harm all functionality, booting, carts etc.
This is like "main crossing way in the town center".
So, I'm trying to find out the source of unstability.Note: Not tested by me, just compiled.
Thanks ! -
-
no change, still almost the same ...
now larger change ...
UC64_2019-03-20-hwerror-rd.zip
Test HWERR2 1 dump is OK in case of red screen, start SYS 3000.Please dump this as well (1 dump), start SYS 3000.
WR0003.zip -
...and here are the dumps:
1. Test hwerr2:
red screen as you mentioned2. Test wr0003:
no color changes after starting wr0003the behavour of the cartridge changed somewhat:
i had red screens, red screens with shortly flashing lines, red screens and then the same screen as if i had no sd card inserted (with red border), screens with garbage (chars as if the system crashed with blue screens or grey screens with orange border) and some variants kicking me to the prompt (blue screens, red screens)