Funeral #01
12 февраля 1999

                                          
     ИНТЕРФЕЙС ТИПА "СТРЕЛКА"   
       ОСНОВНОЙ  АЛГОРИТМ.      
                                          
(C) JASON "NECROPHILE" KRUEGER            
__________________________________________
                                          
последнее время в России наибольшую по-
пулярность приобрел интерфейс типа
"Стрел- ка". Мы хотели бы предложить вам общий ал- горитм такого интерфейса, по которому вы с легкостью можете написать свою программу. Итак,начнем. На входе: Лохи с деньгами,вы - без денег. На выходе: Вы с деньгами,лохи - без денег. 1.Найти лохов с деньгами. 2.Забить им стрелку. 2.1 LD HL,0 PUSH HL (стек понадобится для внутр. нужд) 3.Придти на стрелку. 4.Если лохи не пришли, то найти лохов из- бить и перейти на п.9 5.Если лохи пришли одни, то сказать лохам, что они лохи. 6.Если лохи согласятся, то перейти на п.9 7.Если лохи не согласятся, то обосновать лохам что они лохи, избить лохов и перейти на п.9 8.Если лохи пришли с разводными,то 8.1 Проверить разводных. 8.2 Если разводные - блатные,то забыть про лохов и перейти на п.1 8.3 Если разводные - лохи,то: LD HL,LRAD ;Адрес лохов-развод- ;ных PUSH HL ;Кладется на стек. 9.Поставить лохов на бабки,включить счет- чик. 10.Выполнить процедуру: ПЕРЕМЕННЫЕ: BABKI1 - деньги,принесенные лохами BABKI2 - деньги,которые лохи должны COUNTER - счетчик (сумма в день) BEGIN LD В,31 ;кол-во дней. LD HL,(BABKI2) ;долг. LD DE,(COUNTER) ;счетчик. LOOP ADD HL,DE ;складывают- ;ся, LD (BABKI2),HL ;сохраняется, LD ВС,(BABKI1) ;To,что лохи ;принесли. PUSH HL ;HL - на стек ;(будет ме- ;няться) SBC HL,ВС ;Разница меж- ;ду долгом и ;тем,что лохи ;принесли. JR NZ,NEXT ;Если разни- ;ца <> 0,то ;nobtpoutb. POP HL ;Nначе очис- ;тить стек LD HL,P14 ;и выйти PUSH HL ;на П.14 RET ; NEXT POP HL ;Это и так DJNZ LOOP ;понятно... LD (BABKI2),HL ;Месяц про- CALL P11 ;шел,а денег JR BEGIN ;нет... BABKI1 DEFW 0 BABKI2 DEFW 0 COUNTER DEFW 0 Очистка 11.Избить лохов. 12.Взять паяльник и утюг,пытать лохов. 13.RET (возврат на процедуру п.10) 14. Проверка наличия лохов-разводных (их адрес лежит на стеке) POP HL ;Содержимое стека в ;HL LD A,H ;Проверка OR A ;Если на стеке не 0, JP NZ,P2 ;то трясти c них. XOR A ;Для системы LD ВС,327б5 ;128 КБ OUT (C),A ;(ВКЛ 128 ПЗУ) RST 0 ;Выход. Вот, в общем-то и все. Алгоритм, конечно, можно оптимизировать,например,не проверять разводных на лохов, однако это нежелатель- но, поскольку машинный код блатных может сгенерировать в вашей процедуре поддержа- ния жизни следующую последовательность: DI HALT Желательно так же вставить проверку ло- хов и разводных на ментовость. Иначе в ва- шей жизненной процедуре может сгенериро- ваться: В лучшем случае - цикл LD B,10 (кол-во лет) LOOP DJNZ LOOP RET Либо LOOP JR LOOP В лучшем случае - цикл LD B,10 (кол-во лет) LOOP DJNZ LOOP RET Либо LOOP JR LOOP А в худшем случае - то же: DI HALT (Хотя второй вариант по результату не на- много отличается от третьего). На этом,кажется,все.Счастливого вам рэке- та... RET



Other articles:


Темы: Игры, Программное обеспечение, Пресса, Аппаратное обеспечение, Сеть, Демосцена, Люди, Программирование

Similar articles:
For Coderz - The calculation of trigonometric and algebraic functions in a high-level languages.
Videoglobus - an overview of recent receipts of electronic music.

В этот день...   21 November