DECLARE SUB Box (l1%, c1%, l2%, c2%, Char$, f%) DECLARE FUNCTION SaveScreen$ (l1%, c1%, l2%, c2%) DEFINT A-Z SUB AnimaBox (al1, ac1, al2, ac2, l1, c1, l2, c2, tmp!) ml1! = (l1 - al1) / tmp! mc1! = (c1 - ac1) / tmp! ml2! = (l2 - al2) / tmp! mc2! = (c2 - ac2) / tmp! il1 = al1: ic1 = ac1: il2 = al2: ic2 = ac2 l1 = al1: l2 = al2: c1 = ac1: c2 = ac2 FOR t! = 0 TO tmp! STEP .1 k! = TIMER Box l1, c1, l2, c2, " ", -(t! = 0) l1 = ml1! * t! + il1 c1 = mc1! * t! + ic1 l2 = ml2! * t! + il2 c2 = mc2! * t! + ic2 Box l1, c1, l2, c2, "", -(t! = tmp!) DO: LOOP UNTIL TIMER - k! >= .1 NEXT END SUB SUB Box (l1, c1, l2, c2, Char$, f) ff = -(f <> 0) IF Char$ = "" THEN Char$ = "ÚÄ¿³ÙÄÀ³" + SPACE$(ff) Char$ = LEFT$(Char$ + SPACE$(8 + ff), 8 + ff) ln = c2 - c1 - 1 LOCATE l1, c1: PRINT MID$(Char$, 1, 1); STRING$(ln, MID$(Char$, 2, 1)); MID$(Char$, 3, 1); LOCATE l2, c1: PRINT MID$(Char$, 7, 1); STRING$(ln, MID$(Char$, 6, 1)); MID$(Char$, 5, 1); IF f THEN FOR ll = l1 + 1 TO l2 - 1 LOCATE ll, c1: PRINT MID$(Char$, 8, 1); STRING$(ln, MID$(Char$, 9, 1)); MID$(Char$, 4, 1); NEXT ELSE FOR ll = l1 + 1 TO l2 - 1 LOCATE ll, c1: PRINT MID$(Char$, 8, 1); LOCATE ll, c2: PRINT MID$(Char$, 4, 1); NEXT END IF END SUB SUB NewPrint (l, c, expr$, cor) SHARED a DEF SEG = VARSEG(a) + 4096 * 7& idx& = 160 * (l - 1) + 2 * (c - 1) + 25952 IF cor = 0 THEN ncor = 7 ELSE ncor = cor FOR i = 1 TO LEN(expr$) POKE idx&, ASC(MID$(expr$, i, 1)) POKE idx& + 1, ncor idx& = idx& + 2 NEXT END SUB SUB RestScreen (t$, l1, c1, l2, c2) p = -1 FOR l = l1 TO l2 FOR c = c1 TO c2 p = p + 2 k$ = MID$(t$, p, 2) cor = ASC(RIGHT$(k$, 1)) COLOR cor MOD 16, cor \ 16 LOCATE l, c: PRINT LEFT$(k$, 1); NEXT NEXT END SUB FUNCTION SaveScreen$ (l1, c1, l2, c2) t$ = "" FOR l = l1 TO l2 FOR c = c1 TO c2 t$ = t$ + CHR$(SCREEN(l, c)) + CHR$(SCREEN(l, c, 1)) NEXT NEXT SaveScreen$ = t$ END FUNCTION