Рисунок 4.2. Элементы углов рамки
Для упрощения кодирования мы можем предложить простую сервисную программку на Бейсике, перед использованием которой следует создать полный набор символов, прибегнув к помощи одного из редакторов фонтов (например, из Art Studio). Но не обязательно все символы будут взяты из полученного шрифта, например, в нашей программе заставки их использовано только16. Вот текст кодировщика символов (в дальнейшем везде, где в программах потребуется ввести более одного пробела подряд, для наглядности будем обозначать их символом «·».):
10 BORDER 0: PAPER 0: INK 5: CLEAR 64255 30 INPUT "Font file name:"; LINE a$ 40 LOAD a$CODE 64256 50 INPUT "start symbol:"; LINE a$ 60 CLS : PRINT AT 15,0; INK 6;"'E' - to exit" 70 LET a$=a$(1) 80 LET start=64256+((CODE a$)-32)*8 90 LET s=CODE a$: LET c=0 100 GO TO 110 110 FOR m=start TO 64256+768 120 LET a=PEEK m: LET byte=a 130 LET c=c+1 140 DIM b(8) 150 FOR n=1 TO 8 160 LET a=a/2: LET b(n)=a<>INT a: LET a=INT a 170 NEXT n 180 PRINT AT 2,1; INK 2;"Symbol: "; INK 7; PAPER 1;CHR$ s; PAPER 0; INK 2;" Code: "; INK 7;s 190 FOR n=1 TO 8 200 IF b(n)=0 THEN PAPER 1 210 IF b(n)=1 THEN PAPER 6 220 PRINT AT c+3,9-n;" " 230 NEXT n 240 PAPER 0: PRINT AT c+3,10;byte;"··" 250 IF c>7 THEN LET c=0: LET s=s+1: GO TO 270 260 NEXT m 270 REM ----Если нажата клавиша E---- 280 LET k$=INKEY$ 290 IF k$="E" OR k$="e" THEN BEEP .01,0: GO TO 50 300 IF k$<>"" THEN BEEP .01,20: GO TO 260 310 GO TO 280
Использование этой программы не вызовет никаких затруднений - достаточно отвечать на вопросы, появляющиеся на экране. Добавим только, что при работе с дисководом следует включить в программу строку
20 RANDOMIZE USR 15619: REM : CAT
а строку 40 заменить на такую:
40 RANDOMIZE USR 15619: REM : LOAD a$CODE 64256
Мы пропустим утомительный этап кодирования символов, в результате чего получится довольно длинный ряд цифр, которые запишем после инструкции DEFB и присвоим первому байту этого блока данных метку UDG: