This should work. I'll post an explanation if I get a chance. You may be able to tell what was wrong by just comparing the code to the original.
Code: Select all
'My clone of Mario
'Cris Mihalache
'Started 08, 28, 07
DECLARE SUB xpset (x%, y%, c%)
DECLARE SUB MarioP (x%, y%)
DECLARE SUB PlatformP (x%, y%)
DIM SHARED Mario(10, 10)
DIM SHARED Platform(40, 3)
DIM SHARED MarioM(10, 10)
DIM SHARED PlatformM(40, 3)
CLS
SCREEN 7, 0, 1, 0
FOR y = 0 TO 9
FOR x = 0 TO 9
READ z
Mario(x, y) = z
PSET (x, y), z
NEXT
NEXT
GET (0, 0)-(9, 9), Mario
CLS
FOR y = 0 TO 2
FOR x = 0 TO 39
READ z
Platform(x, y) = z
PSET (x, y), z
NEXT
NEXT
GET (0, 0)-(39, 2), Platform
CLS
FOR y = 0 TO 2
FOR x = 0 TO 39
READ z
PlatformM(x, y) = z
PSET (x, y), z
NEXT
NEXT
GET (0, 0)-(39, 2), PlatformM
CLS
FOR y = 0 TO 9
FOR x = 0 TO 9
READ z
MarioM(x, y) = z
PSET (x, y), z
NEXT
NEXT
GET (0, 0)-(9, 9), MarioM
CLS
LINE (0, 0)-(320, 200), 9, BF
CALL MarioP(50, 50)
CALL PlatformP(20, 20)
DATA 00,00,00,04,04,04,04,00,00,00
DATA 00,00,04,00,04,04,00,04,00,00
DATA 00,00,00,04,04,04,04,00,00,00
DATA 00,00,14,14,14,14,14,14,00,00
DATA 00,02,02,14,14,14,14,02,02,00
DATA 00,02,14,14,14,14,14,14,02,00
DATA 02,00,01,01,00,00,01,01,00,02
DATA 00,00,01,00,00,00,00,01,00,00
DATA 00,07,07,00,00,00,00,07,07,00
DATA 00,07,07,00,00,00,00,07,07,00
DATA 00,04,04,04,04,04,04,04,04,04,04,04,04,04,04,04,04,04,04,04,04,04,04,04,04,04,04,04,04,04,04,04,04,04,04,04,04,04,04,00
DATA 04,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14
DATA 00,04,04,04,04,04,04,04,04,04,04,04,04,04,04,04,04,04,04,04,04,04,04,04,04,04,04,04,04,04,04,04,04,04,04,04,04,04,04,00
DATA 255,04,04,04,04,04,04,04,04,04,04,04,04,04,04,04,04,04,04,04,04,04,04,04,04,04,04,04,04,04,04,04,04,04,04,04,04,04,04,255
DATA 04,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14
DATA 255,04,04,04,04,04,04,04,04,04,04,04,04,04,04,04,04,04,04,04,04,04,04,04,04,04,04,04,04,04,04,04,04,04,04,04,04,04,04,255
DATA 255,255,255,04,04,04,04,255,255,255
DATA 255,255,04,255,04,04,255,04,255,255
DATA 255,255,255,04,04,04,04,255,255,255
DATA 255,255,14,14,14,14,14,14,255,255
DATA 255,02,02,14,14,14,14,02,02,255
DATA 255,02,14,14,14,14,14,14,02,255
DATA 02,255,01,01,255,144,01,01,255,02
DATA 255,255,01,255,255,255,255,01,255,255
DATA 255,07,07,255,255,255,255,07,07,255
DATA 255,07,07,255,255,255,255,07,07,255
PCOPY 1, 0
SUB MarioP (x%, y%)
PUT (x%, y%), MarioM, AND
PUT (x%, y%), Mario, OR
END SUB
SUB PlatformP (x%, y%)
PUT (x%, y%), PlatformM, AND
PUT (x%, y%), Platform, OR
END SUB
SUB xpset (x%, y%, c%)
IF y > 100 THEN
DEF SEG = &HA7D0
POKE ((y% - 100) * 320 + x%), c%
ELSE
DEF SEG = &HA000
POKE (y% * 320 + x%), c%
END IF
END SUB