Радио-86РК/Радио 07-88/Компьютер помогает настроить телевизор: различия между версиями
Panther (обсуждение | вклад) (http://retro.h1.ru/RK86/TV/TestTV.html) |
Panther (обсуждение | вклад) мНет описания правки |
||
Строка 7: | Строка 7: | ||
<pre> | <pre> | ||
10 CLS:CLEAR500 | 10 CLS:CLEAR500 | ||
20 CUR20,20; | 20 CUR20,20; "УПРАВЛЯЮЩИЕ КЛАВИШИ":РРINТ | ||
30 PRINT TAB(15) | 30 PRINT TAB(15) "НАЖМИТЕ УПРАВЛЯЮЩУЮ КЛАВИШУ":РРINТ | ||
40 РRINТ ТАВ(17)"ДЛЯ УВЕЛИЧЕНИЯ МАСШТАБА | 40 РRINТ ТАВ(17)"ДЛЯ УВЕЛИЧЕНИЯ МАСШТАБА ";:Q(1)=USR(-2045) | ||
50 PRINT CHR$(Q(1)):PRINT | 50 PRINT CHR$(Q(1)):PRINT | ||
60 РRINТ ТАВ(13) | 60 РRINТ ТАВ(13)"ДЛЯ ВОЗВРАТА В НАЧАЛЬНЫЙ МАСШТАБ "; | ||
70 Q(2)=USR(-2045);PRINT CHR$(Q(2)):PRINT | 70 Q(2)=USR(-2045);PRINT CHR$(Q(2)):PRINT | ||
80 РRINТ ТАВ(10) | 80 РRINТ ТАВ(10)"ДЛЯ ИЗМЕНЕНИЯ НАСТРАИВАЮЩЕЙ ТАВЛИЦЫ "; | ||
90 Q(3)=USR(-2045):PRINT CHR$(Q(3)) | 90 Q(3)=USR(-2045):PRINT CHR$(Q(3)) | ||
100 BS=16209: REM ДЛЯ 32 | 100 BS=16209: REM ДЛЯ 32 К - 3259:? | ||
110 REM *** ФОРМИРОВАНИЕ ШАХМАТНОГО ПОЛЯ В МАСШТАБЕ *** | 110 REM *** ФОРМИРОВАНИЕ ШАХМАТНОГО ПОЛЯ В МАСШТАБЕ *** | ||
120 W$="":В$="" | 120 W$="":В$="" | ||
130 FOR I=1 ТО 64 | 130 FOR I=1 ТО 64 | ||
140 B$=B$+ | 140 B$=B$+" ":W$=W$+"B" | ||
150 NEXT I | 150 NEXT I | ||
160 R=l:Z=0:BL$="":WT$="":J=0 | 160 R=l:Z=0:BL$="":WT$="":J=0 | ||
170 REM *** ЦИКЛ ИЗМЕНЕНИЯ МАСШТАБА *** | 170 REM *** ЦИКЛ ИЗМЕНЕНИЯ МАСШТАБА *** | ||
180 IF I=16 THEN I=64:J=25:GOTO 210 | 180 IF I=16 THEN I=64:J=25:GOTO 210 | ||
190 IF I=64 THEN l=0:R=1 | 190 IF I=64 THEN l=0:R=1 | ||
200 J=J+1:I=INT(J*1.6) | 200 J=J+1:I=INT(J*1.6) | ||
210 AY=INT(25/J) | 210 AY=INT(25/J) | ||
220 REH **** ЦИКЛ ФОРМИРОВАНИЯ СИМВОЛЬНЫХ ПЕРЕМЕННЫХ **** | 220 REH **** ЦИКЛ ФОРМИРОВАНИЯ СИМВОЛЬНЫХ ПЕРЕМЕННЫХ **** | ||
230 FOR А=0 ТО 64 | 230 FOR А=0 ТО 64 | ||
240 IF Z=0 THEN BL$=BL$+MID$(B$,1,l):WT$=WT$+MID$(W$,1,l) | 240 IF Z=0 THEN BL$=BL$+MID$(B$,1,l):WT$=WT$+MID$(W$,1,l) | ||
250 IF Z=1 THEN BL$=BL$+MID$(W$,1,I):WT$=WT$+MID$(B$,1,l) | 250 IF Z=1 THEN BL$=BL$+MID$(W$,1,I):WT$=WT$+MID$(B$,1,l) | ||
260 IF LEN(BL$=>64 THEN BL$=MID$(BL$,1,64):WT$=MID$(WT$,1,64) | 260 IF LEN(BL$=>64 THEN BL$=MID$(BL$,1,64):WT$=MID$(WT$,1,64) | ||
270 IF LEN(BL$=>64 THEN 300 | 270 IF LEN(BL$=>64 THEN 300 | ||
280 Z=Z+1:lF Z=2 THEN Z=0 | 280 Z=Z+1:lF Z=2 THEN Z=0 | ||
290 NEXT A | 290 NEXT A | ||
300 CLS | 300 CLS | ||
310 REM **** ЦИКЛЫ ОТОБРАЖЕНИЯ ШАХМАТНОГО ПОЛЯ **** | 310 REM **** ЦИКЛЫ ОТОБРАЖЕНИЯ ШАХМАТНОГО ПОЛЯ **** | ||
320 FOR Y=0 TO AY | 320 FOR Y=0 TO AY | ||
330 FOR T=0 TO J-1 | 330 FOR T=0 TO J-1 | ||
340 KY=Y*J+T: IF KY>24 THEN 440 | 340 KY=Y*J+T: IF KY>24 THEN 440 | ||
350 IF Z=0 THEN SH$=WT$ | 350 IF Z=0 THEN SH$=WT$ | ||
360 IF Z=1 THEN SH$=BL$ | 360 IF Z=1 THEN SH$=BL$ | ||
370 REM ***** ЗАПОЛНЕНИЕ НИЖНЕЙ СТРОКИ ***** | 370 REM ***** ЗАПОЛНЕНИЕ НИЖНЕЙ СТРОКИ ***** | ||
380 IF KY=0 THEN CUR0,0:PRINT MID$(SH*,1,63);:POKE BS,ASC(MID$(SH$,64,1) | 380 IF KY=0 THEN CUR0,0:PRINT MID$(SH*,1,63);:POKE BS,ASC(MID$(SH$,64,1) | ||
390 IF KY<>0 THEN CUR0,KY:PRINT SH$; | 390 IF KY<>0 THEN CUR0,KY:PRINT SH$; | ||
400 NEXT T | 400 NEXT T | ||
410 REM ***** ИЗМЕНЕНИЕ ПЕРЕМЕННОЙ ЦВЕТА ***** | 410 REM ***** ИЗМЕНЕНИЕ ПЕРЕМЕННОЙ ЦВЕТА ***** | ||
420 Z=Z+1:lF Z=2 THEN Z=0 | 420 Z=Z+1:lF Z=2 THEN Z=0 | ||
430 NEXT Y | 430 NEXT Y | ||
440 BL$="":WT$="' | 440 BL$="":WT$="' | ||
450 REM **** УПРАВЛЕНИЕ ШАХМАТНЫМ ПОЛЕМ *** | 450 REM **** УПРАВЛЕНИЕ ШАХМАТНЫМ ПОЛЕМ *** | ||
460 U=USR (-2045) | 460 U=USR (-2045) | ||
470 IF U=Q(1) THEN 180 | 470 IF U=Q(1) THEN 180 | ||
480 IF U=Q(2) THEN 120 | 480 IF U=Q(2) THEN 120 | ||
490 IF U=Q(3) THEN 510 | 490 IF U=Q(3) THEN 510 | ||
500 GOTO 460 | 500 GOTO 460 | ||
510 CLS | 510 CLS | ||
520 REM **** ФОРМИРОВАНИЕ РАМОЧНОГО ПОЛЯ **** | 520 REM **** ФОРМИРОВАНИЕ РАМОЧНОГО ПОЛЯ **** | ||
530 REM **** ЦИКЛ МАСШТАБА **** | 530 REM **** ЦИКЛ МАСШТАБА **** | ||
540 FOR Z=6 TO 16 STEP 4 | 540 FOR Z=6 TO 16 STEP 4 | ||
550 REM **** ЦИКЛ ОТОБРАЖЕНИЯ РАМОЧНОГО ПОЛЯ **** | 550 REM **** ЦИКЛ ОТОБРАЖЕНИЯ РАМОЧНОГО ПОЛЯ **** | ||
560 FOR Х=0 ТО 40 STEP Z | 560 FOR Х=0 ТО 40 STEP Z | ||
570 Y=INT(X/2.6) | 570 Y=INT(X/2.6) | ||
580 PLOT X,Y,1:LINE X,49-Y:LINE127-X,49-Y:LINE127-X,Y:LINEX,Y | 580 PLOT X,Y,1:LINE X,49-Y:LINE127-X,49-Y:LINE127-X,Y:LINEX,Y | ||
570 NEXT X | 570 NEXT X | ||
600 REM ****** УПРАВЛЕНИЕ РАМОЧНЫМ ПОЛЕМ ****** | 600 REM ****** УПРАВЛЕНИЕ РАМОЧНЫМ ПОЛЕМ ****** | ||
610 U=USR (-2045) | 610 U=USR (-2045) | ||
620 IF U=Q(1) THEN CLS:NEXT Z:GOTO540 | 620 IF U=Q(1) THEN CLS:NEXT Z:GOTO540 | ||
630 IF U=Q(2) THEN CLS: GOTO 540 | 630 IF U=Q(2) THEN CLS: GOTO 540 | ||
640 IF U=Q(3) THEN 670 | 640 IF U=Q(3) THEN 670 | ||
650 GOTO 610 | 650 GOTO 610 | ||
660 REM **** ФОРМИРОВАНИЕ СИМВОЛЬНОГО ПОЛЯ ***** | 660 REM **** ФОРМИРОВАНИЕ СИМВОЛЬНОГО ПОЛЯ ***** | ||
670 CLS | 670 CLS | ||
680 REM ***** ЗАПИСЬ СИМВОЛОВ В МАССИВ ***** | 680 REM ***** ЗАПИСЬ СИМВОЛОВ В МАССИВ ***** | ||
690 A$(1)="!":A$(2)=".":A$(3)="-":X=0 | 690 A$(1)="!":A$(2)=".":A$(3)="-":X=0 | ||
700 S$="":X=X+1 | 700 S$="":X=X+1 | ||
710 IF X=4 THEN X=1 | 710 IF X=4 THEN X=1 | ||
720 FOR J=1 TO 64:S$=S$+A$(X):NEXT J | 720 FOR J=1 TO 64:S$=S$+A$(X):NEXT J | ||
730 REM **** ПЕЧАТЬ НИЖНЕЙ СТРОКИ **** | 730 REM **** ПЕЧАТЬ НИЖНЕЙ СТРОКИ **** | ||
740 CUR0,0:PRINT MID$(S$,1,63);:POKE BS,ASC(A$(X)) | 740 CUR0,0:PRINT MID$(S$,1,63);:POKE BS,ASC(A$(X)) | ||
750 REM ***** ЦИКЛ ПЕЧАТИ ***** | 750 REM ***** ЦИКЛ ПЕЧАТИ ***** | ||
760 FOR I=1 TO 24 | 760 FOR I=1 TO 24 | ||
770 CUR 0,1I:PRINTS$; | 770 CUR 0,1I:PRINTS$; | ||
780 NEXT I | 780 NEXT I | ||
790 REM ***** УПРАВЛЕНИЕ СИМВОЛЬНЫМ ПОЛЕМ ***** | 790 REM ***** УПРАВЛЕНИЕ СИМВОЛЬНЫМ ПОЛЕМ ***** | ||
800 U=USR (-2045) | 800 U=USR (-2045) | ||
810 IF U=Q(1) THEN 700 | 810 IF U=Q(1) THEN 700 | ||
820 IF U=Q(2) THEN 670 | 820 IF U=Q(2) THEN 670 | ||
830 IF U=O(3) THEN 850 | 830 IF U=O(3) THEN 850 | ||
840 GOTO 800 | 840 GOTO 800 | ||
850 REM *** ФОРМИРОВАНИЕ ЦЕНТРАЛЬНОГО КРЕСТА И ДИАГОНАЛИ ***** | 850 REM *** ФОРМИРОВАНИЕ ЦЕНТРАЛЬНОГО КРЕСТА И ДИАГОНАЛИ ***** | ||
860 CLS | 860 CLS | ||
870 FOR l=0 TO 63:CURI,13:PRINT"-"; :NEXT I | 870 FOR l=0 TO 63:CURI,13:PRINT"-"; :NEXT I | ||
880 FOR I=0 TO 24: CUR 32,I:PRINT"l";:NEXT I | 880 FOR I=0 TO 24: CUR 32,I:PRINT"l";:NEXT I | ||
890 U=USR (-2045) | 890 U=USR (-2045) | ||
900 CLS | 900 CLS | ||
910 FOR I=0 TO 49 | 910 FOR I=0 TO 49 | ||
920 PLOT l,0,1:LINE 127,49-I | 920 PLOT l,0,1:LINE 127,49-I | ||
930 NEXT I | 930 NEXT I | ||
940 U=USR (-2045) | 940 U=USR (-2045) | ||
950 CLS | 950 CLS | ||
960 FOR I=0 TO 49 | 960 FOR I=0 TO 49 | ||
970 PLOT 0,l,1: LINE 127,49 | 970 PLOT 0,l,1: LINE 127,49 | ||
980 NEXT I | 980 NEXT I | ||
990 U=USR(-2045):GOTO 160 | 990 U=USR(-2045):GOTO 160 |
Текущая версия от 15:43, 27 ноября 2008
Данный материал защищён авторскими правами!
Использование материала заявлено как добросовестное, исключительно для образовательных некоммерческих целей. Автор: А. СОРОКИН Источник: http://retro.h1.ru/RK86/TV/TestTV.html |
Для настройки телевизоров черно-белого цветного изображения радиолюбители обычно используют как самодельные, так и промышленные генераторы телевизионных испытательных сигналов. Эти приборы значительно облегчают и ускоряют регулировку телевизионных приемников. Однако, если в распоряжении радиолюбителя имеется персональный компьютер «Радио-86РК», то настройку можно провести и без генератора телевизионных сигналов.
В этом вам поможет программа «Сигнал»(см. табл.), формирующая семь испытательных изображений: шахматного, рамочного и точечного полей, вертикальных и горизонтальных полос, центрального креста и диагональной ступеньки. Формируемые компьютером сигналы через видеомодулятор подают на вход телевизора или непосредственно на вход «видео».
10 CLS:CLEAR500 20 CUR20,20; "УПРАВЛЯЮЩИЕ КЛАВИШИ":РРINТ 30 PRINT TAB(15) "НАЖМИТЕ УПРАВЛЯЮЩУЮ КЛАВИШУ":РРINТ 40 РRINТ ТАВ(17)"ДЛЯ УВЕЛИЧЕНИЯ МАСШТАБА ";:Q(1)=USR(-2045) 50 PRINT CHR$(Q(1)):PRINT 60 РRINТ ТАВ(13)"ДЛЯ ВОЗВРАТА В НАЧАЛЬНЫЙ МАСШТАБ "; 70 Q(2)=USR(-2045);PRINT CHR$(Q(2)):PRINT 80 РRINТ ТАВ(10)"ДЛЯ ИЗМЕНЕНИЯ НАСТРАИВАЮЩЕЙ ТАВЛИЦЫ "; 90 Q(3)=USR(-2045):PRINT CHR$(Q(3)) 100 BS=16209: REM ДЛЯ 32 К - 3259:? 110 REM *** ФОРМИРОВАНИЕ ШАХМАТНОГО ПОЛЯ В МАСШТАБЕ *** 120 W$="":В$="" 130 FOR I=1 ТО 64 140 B$=B$+" ":W$=W$+"B" 150 NEXT I 160 R=l:Z=0:BL$="":WT$="":J=0 170 REM *** ЦИКЛ ИЗМЕНЕНИЯ МАСШТАБА *** 180 IF I=16 THEN I=64:J=25:GOTO 210 190 IF I=64 THEN l=0:R=1 200 J=J+1:I=INT(J*1.6) 210 AY=INT(25/J) 220 REH **** ЦИКЛ ФОРМИРОВАНИЯ СИМВОЛЬНЫХ ПЕРЕМЕННЫХ **** 230 FOR А=0 ТО 64 240 IF Z=0 THEN BL$=BL$+MID$(B$,1,l):WT$=WT$+MID$(W$,1,l) 250 IF Z=1 THEN BL$=BL$+MID$(W$,1,I):WT$=WT$+MID$(B$,1,l) 260 IF LEN(BL$=>64 THEN BL$=MID$(BL$,1,64):WT$=MID$(WT$,1,64) 270 IF LEN(BL$=>64 THEN 300 280 Z=Z+1:lF Z=2 THEN Z=0 290 NEXT A 300 CLS 310 REM **** ЦИКЛЫ ОТОБРАЖЕНИЯ ШАХМАТНОГО ПОЛЯ **** 320 FOR Y=0 TO AY 330 FOR T=0 TO J-1 340 KY=Y*J+T: IF KY>24 THEN 440 350 IF Z=0 THEN SH$=WT$ 360 IF Z=1 THEN SH$=BL$ 370 REM ***** ЗАПОЛНЕНИЕ НИЖНЕЙ СТРОКИ ***** 380 IF KY=0 THEN CUR0,0:PRINT MID$(SH*,1,63);:POKE BS,ASC(MID$(SH$,64,1) 390 IF KY<>0 THEN CUR0,KY:PRINT SH$; 400 NEXT T 410 REM ***** ИЗМЕНЕНИЕ ПЕРЕМЕННОЙ ЦВЕТА ***** 420 Z=Z+1:lF Z=2 THEN Z=0 430 NEXT Y 440 BL$="":WT$="' 450 REM **** УПРАВЛЕНИЕ ШАХМАТНЫМ ПОЛЕМ *** 460 U=USR (-2045) 470 IF U=Q(1) THEN 180 480 IF U=Q(2) THEN 120 490 IF U=Q(3) THEN 510 500 GOTO 460 510 CLS 520 REM **** ФОРМИРОВАНИЕ РАМОЧНОГО ПОЛЯ **** 530 REM **** ЦИКЛ МАСШТАБА **** 540 FOR Z=6 TO 16 STEP 4 550 REM **** ЦИКЛ ОТОБРАЖЕНИЯ РАМОЧНОГО ПОЛЯ **** 560 FOR Х=0 ТО 40 STEP Z 570 Y=INT(X/2.6) 580 PLOT X,Y,1:LINE X,49-Y:LINE127-X,49-Y:LINE127-X,Y:LINEX,Y 570 NEXT X 600 REM ****** УПРАВЛЕНИЕ РАМОЧНЫМ ПОЛЕМ ****** 610 U=USR (-2045) 620 IF U=Q(1) THEN CLS:NEXT Z:GOTO540 630 IF U=Q(2) THEN CLS: GOTO 540 640 IF U=Q(3) THEN 670 650 GOTO 610 660 REM **** ФОРМИРОВАНИЕ СИМВОЛЬНОГО ПОЛЯ ***** 670 CLS 680 REM ***** ЗАПИСЬ СИМВОЛОВ В МАССИВ ***** 690 A$(1)="!":A$(2)=".":A$(3)="-":X=0 700 S$="":X=X+1 710 IF X=4 THEN X=1 720 FOR J=1 TO 64:S$=S$+A$(X):NEXT J 730 REM **** ПЕЧАТЬ НИЖНЕЙ СТРОКИ **** 740 CUR0,0:PRINT MID$(S$,1,63);:POKE BS,ASC(A$(X)) 750 REM ***** ЦИКЛ ПЕЧАТИ ***** 760 FOR I=1 TO 24 770 CUR 0,1I:PRINTS$; 780 NEXT I 790 REM ***** УПРАВЛЕНИЕ СИМВОЛЬНЫМ ПОЛЕМ ***** 800 U=USR (-2045) 810 IF U=Q(1) THEN 700 820 IF U=Q(2) THEN 670 830 IF U=O(3) THEN 850 840 GOTO 800 850 REM *** ФОРМИРОВАНИЕ ЦЕНТРАЛЬНОГО КРЕСТА И ДИАГОНАЛИ ***** 860 CLS 870 FOR l=0 TO 63:CURI,13:PRINT"-"; :NEXT I 880 FOR I=0 TO 24: CUR 32,I:PRINT"l";:NEXT I 890 U=USR (-2045) 900 CLS 910 FOR I=0 TO 49 920 PLOT l,0,1:LINE 127,49-I 930 NEXT I 940 U=USR (-2045) 950 CLS 960 FOR I=0 TO 49 970 PLOT 0,l,1: LINE 127,49 980 NEXT I 990 U=USR(-2045):GOTO 160
Программа «Сигнал» состоит из четырех частей. Каждая из них ответственна за вывод определенной настроечной таблицы.
Расположенная в строках со 110 до 500 первая часть, формирует шахматное поле, изменяемое в масштабе.
Во второй части программы, занимающей место со строки 510 до 650, генерируется рамочное поле, также изменяемое в масштабе.
Третья часть, находящаяся с 660 до 840 строки, выводит три различных изображения: точечное поле, вертикальные или горизонтальные полосы. Эти изображения не изменяются в масштабе.
Последняя часть — строки 850—990 —формирует три оставшиеся изображения.
Управляют программой тремя любыми клавишами, коды которых в ответ на запрос компьютера при пуске программы будут запомнены ею. Первая управляющая клавиша изменяет масштаб, вторая устанавливает первоначальный масштаб изображения, а третья позволяет переходить от одного настроечного изображения к другому (в последней части программы изображение сменяется при нажатии на любую клавишу).
А. СОРОКИН, г. Москва