I think I can see the bug now. In the text writing code it does this: ld a,(hl) ; 7e inc hl ; 23 ld h,(hl) ; 66 add a,e ; 83 add a,e ; 83 ld l,a ; 6f ld a,h ; 7c adc a,0 ; ce 00 ld h,a ; 67The first add a,e is ok, but if it overflows (goes greater than 255) the second add a,e will update the low byte only of the address. The effect is that the text moves to a different position. The result is as you see.Code needs to be changed so that full 16-bits are updated. Address will be calculated correct now.: ld a,(hl) ;7e inc hl ;23 ld h,(hl) ;66 ld l,a ;6f ld d,0 ;16 00 add hl,de ;19 add hl,de ;19 nop ;00 nop ;00this will work I think.Your snapshot is in the middle of drawing I think so already some text is displayed wrong, but if you have an earlier snapshot from when text begins to write then I think we will see correct result. Try these pokes: These bytes: 6F,16,00,19,19,00,00put these bytes at these addresses: 4111, 41b2 and 4233. I see three places where similar code is being used, so I guessed that all of these need to be changed.I hope this should work. http://www.cpcwiki.eu/forum/applications/3d-construction-kit-bug/msg87055/#msg87055 ★ AMSTRAD CPC ★ DOWNLOAD ★ |
|
CPCrulez[Content Management System] v8.73-desktop Page créée en 594 millisecondes et consultée 1594 foisL'Amstrad CPC est une machine 8 bits à base d'un Z80 à 4MHz. Le premier de la gamme fut le CPC 464 en 1984, équipé d'un lecteur de cassettes intégré il se plaçait en concurrent du Commodore C64 beaucoup plus compliqué à utiliser et plus cher. Ce fut un réel succès et sorti cette même années le CPC 664 équipé d'un lecteur de disquettes trois pouces intégré. Sa vie fut de courte durée puisqu'en 1985 il fut remplacé par le CPC 6128 qui était plus compact, plus soigné et surtout qui avait 128Ko de RAM au lieu de 64Ko. |
|
|