DECLARE SUB SaveScreen (f$) DECLARE SUB LoadPal (f$) SCREEN 13: CLS DIM SHARED Pal(1256) AS LONG Horz = POINT(1): Vert = POINT(0) PSET (Vert, Horz), 2 C = 1 FILES "*.pa2" INPUT "Palette name"; f$ IF INSTR(f$, ".") = 0 THEN f$ = f$ + ".pa2" CLS LoadPal f$ 1 d$ = INKEY$ IF d$ = "" THEN a = INT(RND * 4) IF a = 0 THEN a$ = CHR$(0) + "M" IF a = 1 THEN a$ = CHR$(0) + "K" IF a = 2 THEN a$ = CHR$(0) + "P" IF a = 3 THEN a$ = CHR$(0) + "H" ELSE a$ = d$ END IF IF a$ = "" THEN GOTO 1 RANDOMIZE TIMER + a - VAL(DATE$) + VAL(TIME$) IF a$ = CHR$(0) + "M" AND Vert < 319 THEN Vert = Vert + 1 IF a$ = CHR$(0) + "K" AND Vert > 0 THEN Vert = Vert - 1 IF a$ = CHR$(0) + "P" AND Horz < 199 THEN Horz = Horz + 1 IF a$ = CHR$(0) + "H" AND Horz > 0 THEN Horz = Horz - 1 IF a$ = CHR$(27) THEN SaveScreen "One.BSV" IF POINT(Horz, Vert) = Horz THEN GOTO 1 IF a$ = "" THEN END 'IF C < 240 THEN C = C + 1 ELSE C = 2 C = Horz * 1.299999999# 'PSET (Vert - 1, Horz - 1), C 'PSET (Vert - 1, Horz + 1), C PSET (Vert + 1, Horz + 1), C PSET (Vert + 1, Horz - 1), C PSET (Vert, Horz + 1), C PSET (Vert, Horz - 1), C PSET (Vert + 1, Horz), C PSET (Vert - 1, Horz), C IF Horz < 199 AND Vert < 319 THEN PSET (Vert, Horz), C ELSE GOTO 1 GOTO 1 SUB LoadPal (f$) OPEN f$ FOR INPUT AS #1 q = 1 DO UNTIL EOF(1) INPUT #1, Pal(q) q = q + 1 LOOP PALETTE USING Pal(1) CLOSE 1 END SUB SUB SaveScreen (f$) DEF SEG = &HA000 BSAVE f$, 0, 64000 END SUB