IzhNews
#05
09 мая 2000 |
|
Nonsense in BASIC - программиррование калькулятора Citizen SPR-145.
/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\ /▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒\ \▒▒▒▒▒ -= 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
Другие статьи номера:
Похожие статьи:
В этот день... 21 ноября