; player moving right:The following patch fixes the problem in the same number of bytes:
658c 216b65 ld hl,$656b ; current player position
658f 7e ld a,(hl)
6590 fe1d cp $1d ; max column = 29
6592 c8 ret z
6593 34 inc (hl) ; move right
6594 3a7f60 ld a,($607f)
6597 fe01 cp $01
6599 280f jr z,$65aa
659b fe02 cp $02
659d 2812 jr z,$65b1
659f fe04 cp $04
65a1 280e jr z,$65b1
65a3 218400 ld hl,$0084 ; next "walking right" frame
65a6 226e65 ld ($656e),hl
65a9 c9 ret
...
; player moving left:
65e0 216b65 ld hl,$656b ; current player position
65e3 7e ld a,(hl)
65e4 fe00 cp $00 ; min column = 0
65e6 c8 ret z
65e7 35 dec (hl) ; move left
65e8 3a7f60 ld a,($607f)
65eb fe01 cp $01
65ed 280f jr z,$65fe
65ef fe02 cp $02
65f1 2812 jr z,$6605
65f3 fe04 cp $04
65f5 280e jr z,$6605
65f7 211800 ld hl,$0018 ; next "walking left" frame
65fa 226e65 ld ($656e),hl
65fd c9 ret
; player moving right:
658c 216b65 ld hl,$656b
658f 7e ld a,(hl)
6590 fe1d cp $1d
6592 2801 jr z,$6595 ; POKE 26002,40: POKE 26003,1
6594 34 inc (hl) ; POKE 26004,52
6595 3a7f60 ld a,($607f) ; POKE 26005,58: POKE 26006,127: POKE 26007,96
6598 3d dec a ; POKE 26008,61
6599 280f jr z,$65aa
659b fe01 cp $01 ; POKE 26012,1
659d 2812 jr z,$65b1
659f fe03 cp $03 ; POKE 26016,3
65a1 280e jr z,$65b1
65a3 218400 ld hl,$0084
65a6 226e65 ld ($656e),hl
65a9 c9 ret
...
; player moving left:
65e0 216b65 ld hl,$656b
65e3 7e ld a,(hl)
65e4 b7 or a ; POKE 26084,183
65e5 2801 jr z,$65e8 ; POKE 26085,40: Poke 26086,1
65e7 35 dec (hl)
65e8 3a7f60 ld a,($607f)
65eb fe01 cp $01
65ed 280f jr z,$65fe
65ef fe02 cp $02
65f1 2812 jr z,$6605
65f3 fe04 cp $04
65f5 280e jr z,$6605
65f7 211800 ld hl,$0018
65fa 226e65 ld ($656e),hl
65fd c9 ret
Spectrum Computing acknowledges the rights of copyright holders. If you would like your software removed from our preservation archive and made unavailable for download (or have any queries) please contact spectrumcomputing.co.uk@gmail.com