' ROTOZOOM.BAS SCREEN 13 DEF SEG = &HA000 angle! = 0 zoom! = 1 fps! = 1 offx! = 0 offy! = 0 frames% = 0 lastt& = TIMER DO WHILE INKEY$ = "" ptr& = 0 dx! = zoom! * COS(angle!) dy! = zoom! * SIN(angle!) spx! = offx! - (-dy! * 100 + dx! * 150) spy! = offy! - (dx! * 100 + dy! * 150) FOR y% = 0 TO 199 px! = spx! py! = spy! spx! = spx! - dy! spy! = spy! + dx! FOR x% = 0 TO 319 POKE ptr&, px! XOR py! px! = px! + dx! py! = py! + dy! ptr& = ptr& + 1 NEXT x% NEXT y% frames% = frames% + 1 thist& = TIMER IF thist& <> lastt& THEN fps! = frames% / (thist& - lastt&) IF fps! = 0 THEN fps! = .1 frames% = 0 lastt& = thist& END IF angle! = angle! + (.7 / fps!) zoom! = 1.4 + COS(angle! / 3.3) offx! = offx! + 60 / fps! offy! = offy! + 80 / fps! WAIT &H3DA, 8 LOOP