' P/M test program››graphics 0          ' Setups graphics mode›pmgraphics 2        ' And P/M mode›P0Mem = pmadr(0)    ' Get player 0 address›oldPos = P0Mem      ' and into "old position"››mset P0Mem, 128, 0  ' Clears P/M 0 Memory›setcolor -4, 1, 15››' P/M data and blank (to clear P/M)›DATA PMdata()  byte = $38,$44,$54,$44,$38››' Initial Conditions›xPos = 6400 : yPos = 2560›xSpd =   64 : ySpd =    0››repeat› xPos = xPos + xSpd : yPos = yPos + ySpd› ySpd = ySpd + 2› if (ySpd > 0) and (yPos > 12800)›   ySpd = -ySpd›   xSpd = Rand(512) - 256› endif› if xSpd > 0›  if xPos > 25600 Then xSpd = -xSpd› else›  if xPos <  6400 Then xSpd = -xSpd› endif› @MovePm            ' Move P/M Graphics›until Key()››graphics 0››END››proc MovePm› x = xPos / 128 : y = P0Mem + yPos / 128› poke $D01A,$74 ' Change background color› pause› pmhpos 0, x            ' Set new horizontal position› mset oldPos, 5, 0      ' Clear old sprite› move adr(PMdata), y, 5 ' Draw at new vertical pos.› oldPos = y›endproc›