Трабл с назначением цвета в режиме SCREEN 12 - QBasic
Формулировка задачи:
При запуске программы меняются цвета с атрибутами 1-5 и 7, а цвета 6 и 8-15 остаются стандартными. Такое только у меня и если нет, то почему так происходит?
При
WIDTH 80,30
все цвета меняются согласно программе.Не по теме:
Слово "проблема" оказалось запрещено для заголовка
Решение задачи: «Трабл с назначением цвета в режиме SCREEN 12»
textual
Листинг программы
DECLARE SUB SetRGB (CvA%, ReV%, GrV%, BlV%) ' Палитра DECLARE SUB Scr9RGB (CvS9%, ReV%, GrV%, BlV%) SCREEN 12 WIDTH 80, 60 FOR i% = 1 TO 15 Scr9RGB i%, i% * 4, i% * 4, i% * 4 COLOR i%: PRINT i% NEXT i% SUB Scr9RGB (CvS9%, ReV%, GrV%, BlV%) IF CvS9% < 6 AND CvS9% > -1 THEN SetRGB CvS9%, ReV%, GrV%, BlV% IF CvS9% = 6 THEN SetRGB 20, ReV%, GrV%, BlV% IF CvS9% = 7 THEN SetRGB 7, ReV%, GrV%, BlV% IF CvS9% > 7 AND CvS9% < 16 THEN SetRGB CvS9% + 48, ReV%, GrV%, BlV% END SUB SUB SetRGB (CvA%, ReV%, GrV%, BlV%) OUT &H3C8, CvA%: OUT &H3C9, ReV%: OUT &H3C9, GrV%: OUT &H3C9, BlV% END SUB
Объяснение кода листинга программы
1. Объявлены две подпрограммы: SetRGB и Scr9RGB.
- Задан режим экрана 12, а также ширина и высота экрана.
- Происходит цикл по 15 элементам.
- В каждой итерации цикла вызывается подпрограмма Scr9RGB с четырьмя аргументами.
- В подпрограмме Scr9RGB происходит проверка значения первого аргумента и, в зависимости от этого значения, вызывается подпрограмма SetRGB с соответствующими аргументами.
- Если значение первого аргумента подпрограммы Scr9RGB равно 6, то в подпрограмме SetRGB передаются значения 20, ReV%, GrV%, BlV%.
- Если значение первого аргумента подпрограммы Scr9RGB равно 7, то в подпрограмме SetRGB передаются значения 7, ReV%, GrV%, BlV%.
- Если значение первого аргумента подпрограммы Scr9RGB больше 7 и меньше 16, то в подпрограмме SetRGB передаются значения CvS9% + 48, ReV%, GrV%, BlV%.
- Если значение первого аргумента подпрограммы Scr9RGB меньше 6 или больше 16, то в подпрограмме SetRGB передаются значения CvS9%, ReV%, GrV%, BlV%.
- В подпрограмме SetRGB происходит запись цвета в регистры OUT &H3C8, CvA%, OUT &H3C9, ReV%, OUT &H3C9, GrV%, OUT &H3C9, BlV%.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д