/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\
/▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒\
\▒▒▒▒▒ -= Nonsense in BASIC =- ▒▒▒▒▒▒▒▒/
/▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒\
\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/
(c) PIXel/BrC
__________________________________________
Zдравствуйте дорогие мои почитатели
нашей газетенки. Слово держит постоянный
ведущий этой рубрики - Р!Хе1 (ну влом мне
переключаться в русский). Сегодня мы снова
будем (мы это я и еще тот кому не влом)
писать программы и, как видно из названия
рубрики, не на BASIC'е.
CITIZEN SRP-145.
Да, да дорогие мои будем
програмировать калькулятор. Как всякий
программер, я когда увидел в инструкции к
калькулью слово "програмируеммый" сразу
решил что надо его запрограмировать.
ПРОГРАММИРОВАНИЕ
Сохранение произведенных математических
операций в памяти калькулятора.
С помошью данного калькулятора можно
сохранить одну последовательность вычис-
лений, содержащую не более 40-ка шагов.
Эти "шаги" могут быть либо собственно
шагами, как, например, математические
функции, либо значениями (например,
числами). Каждая функция считается за один
шаг . Запоминается программа даже если
затем калькулятор выключают. При
вычислениях можно пользоваться более чем
одной переменной.
Данный калькулятор запоминает мате-
матические операции или программы в режиме
Program(PGM) Mode....
Все! Запарило меня инструкцию
переписывать. Если не потеряли сами
прочитаете. А я щаз раскажу вам нудную
историю как я его запрограмил.
Сижу значит, делать нечего, ну я взял
калькуль и порешил написать для него прог
который считает корни квадратного такого
уравнения и все такое прочее. Из той
самой инструкции узнал что мне на все
про все отводят 40 шагов. Ну для такой
простий задачи этого хватит вполне,
подумаете вы, я тоже сперва так подумал и
начал програмить. Для начала вспомним
формулу по которой эти самые корни
искаются: __________ __________
-b+√ b¤-4∙a∙c -b-√ b¤-4∙a∙c
x1= ────────────── x2= ────────────────
2∙a 2∙a
Пожалуй опущу повесть о то как это все не
влезло в 40 шагов, ка оно потом
оптимизировалось до нужной цыфры, как
оно, влезшее в 40 шагов не раборало и как
я заоптимизилось до такого размера что
срало работать, а лишь опишу окончательный
ответ:
Дави вот что:
[on/c] включили
[1] a=1
[shift][Ka] ввели значение a в RAM
[2] b=2
[shift][Kb] -------//----- b --/--
[3] c=3
[x->m] -------//----- c --/--
[on/c]
Теперь собсвенно сама прога:
[shift][pgm] Program Mode
[Kb][x2][-][4]
[x][Ka][x][MR] b2-4ac
[v] корень из дискриминанта
[Ў][2][Ў][Ka] деленный на 2a
[=]
[x->m] ложим вместо с (оно
больше не нужно)
[-][Kb]
[Ў][2][Ў][Ka]
[=] вот и он - первый
корень.
[halt] засветим на скрин.
[-][MR] востановили (b2-4ac)/2a
[-][MR][=] второй корешок
[halt] тоже засветим.
[shift][pgm] выход
[run] видим первый корень
[run] --/-- второй --/--.
Теперь ты гордый своей крутизной несешь
калькуль и показываешь своим друзьям это
чудо...
Колорная мазня.
Ну и назвние. Ну да ладно. Кароче то,
о чем сейчас пойдет речь вы можете увидеть
нажав на педаль <V>. Нажали? если кому-то
еще интерсно,то читайте далее.
В одной демке я увидел колорные чанки
и решил что мне тоже по силам сделать что-
либо подобное. Сразу предупреждаю что
исходников сегодня не будет. Особо
любопытные могут конечно поломать листалку
и вудернуть его(исходник) оттуда, но сразу
предупреждаю что сделан эффект по принципу
поет и ладно без всяких попыток
оптимизации и т.п.
Основной цикл выглядит следующим
образом:
1. изменение буфера.
2. печать буфера.
3. прыг на 1 если не надавили ничего.
Точно также выглядит головной цикл огня,
но об этом в другой раз.
Буфер содержит байты описывающие
каждое знакоместо экрана, и выглядят они
следующим образом:
%хрррcccc
│└┼┘└┴┴┴──> номер чанка (0Ў15)
│ └───────> папер(инк на 1 болше)
└─────────> я не использую.
Моя прцедура изменения буфера тоько
увеличивает каждое значение на 1 (inc).
Процедура печати использует процедуру
печати символа (чанк-то 8х8). Инк как
сказано выше на 1 больше папера. Для
процедуры (моей) требуется фонт из 16
символов от пустого до заполненного чанка.
Ну вот основную идею вытолкнул теперь
все кто вЪехал могу это сделать. Прошу у
всех кого обломал прощения за отсутствие
исходников (стыдно было за такой код). Еще
навено не очень приятно читать мой маразм,
ну не могу я лучше, а писать хочется, хотя
я никого не заставляю читать. А писать я
буду и дальше т. к. никто пока не
выссказал своего мнения (отрицательного) о
моей писанине. Также хочу напомнить что
все статьи расчитаны на начинающего кодера
(вроде меня) и посему обвинять меня в
ламерстве не стоит а то... огого....
и..... в..... штоб больше не.... иначе
ему.... <censored>.....
SBC HL,HL
PUSH HL
RET
>Assemble
>Run