|
ZX Review
#7-8-9-10
08 ноября 1997 |
|
Этюды - Процедура рисования линии.

(c) Медведев С., г.Углич Хочу предложить читателям "Ревю" процедуру рисования ли- нии, алгоритм которой слегка от- личается от алгоритма процедуры из "Элементарной графики". 140. ;Draw subroutine ;На входе: BC - координаты нача- ; ла линии (B=Y, C=X) ; DE - координаты конца ; линии (D=Y, E=X) DRAW EXX LD BC,#1C14 EXX LD A,B CP D JR NC,NO_EXX LD B,D LD D,A LD A,C LD C,E LD E,A NO_EXX LD A,C SUB E JR NC,X_POSIT NEG EXX LD B,#1D EXX X_POSIT LD L,A ; смещение по X LD A,B SUB D ; A - смещение по Y CP L LD H,L LD B,L LD HX,B LD LX,A JR C,DONE EXX LD C,B LD B,#14 EXX LD H,A LD B,A LD HX,A LD A,L LD LX,A DONE INC H INC LX EXX LD A,B LD (COMM),A LD A,C LD (COMM1),A EXX NEXT PUSH HL PUSH DE PUSH BC CALL PLOT ;'PLOT' - любая процедура уста- ; новки точки; координаты в DE: ; D-Y, E-X. Рекомендую процедуру ; А.Астафьева. POP BC POP DE POP HL COMM INC E ;* LD A,HX SUB LX LD HX,A JR C,CARRY COUNT DEC H JR NZ,NEXT RET CARRY ADD A,B LD HX,A COMM1 INC D ;* JR COUNT2 * - эти команды могут быть заменены другими, поэтому здесь можно написать просто NOP. Как видно, программа исполь- зует половинки регистра IX, и владельцы ассемблеров, "не пере- варивающих" мнемоники LX/HX/LY/ HY, могут писать: 140. вместо LD LX,A - DEFB #DD LD L,A вместо LD C,HX - DEFB #DD LD C,H и т.д.2 Для очистки совести скажу, что программа эта написана "по мотивам" процедуры из демки "VI- BRATIONS". * * *
Другие статьи номера:
Похожие статьи:
В этот день... 1 января
SibNews #08,
Woot! #01,
Spectrum Magazine #01,
ACNews #25,
Psychoz #14,
ACNews #14,
Last 128 #08,
Last 128 #06,
Last 128 #05,
Last 128 #04,
Last 128 #03,
Last 128 #02,
Last 128 #09,
Last 128 #3.5,
Last 128 #8.025,
Sinclair Club #05,
Last 128 #M!R 01,
Fantadrom #01,
Buzz #20,
Last 128 #01,
DonNews #13,
Nicron #120,
Promised Land #01,
Inferno #01,
Marazm #25,
Ultimathum #01,
Marazm #21,
Hooy Mag #02,
KrNews #11,
Marazm #22,
Marazm #23,
ZX Football 2000 #01,
Codemania #01,
Always #03,
Bugs #02,
IzhNews #08,
Virtual Worlds #01,
Listok #04,
Scenergy #02,
Flash Info #18,
Marazm #16,
Marazm #17,
Zed #01,
Balagan #02,
ZX Format #08,
ZX Power #03,
Shock #01,
Impulse #02,
Deja Vu #03,
ZX Club #08,
ZX Club #06,
Numberology #01,
Marazm #13,
Marazm #12,
Marazm #14,
Gorodok #02,
Zodiac #01,
Marazm #15,
Deja Vu #07,
Marazm #11,
Deja Vu #07,
Playboy #03,
Crazy News #2,
Crazy News #4,
ZX Light #01,
Crazy News #5,
Playboy #02,
ZX News #03,
ZX Review #1-2,
Read Me #02,
Crazy News #3,
Nicron #13,
Read Me #01,
Public Spirit #01,
Faultless #06,
Faultless #05,
ZX Software #01,
Stump #04,
Speccy #07,
Возраждение #0,
Speccy #03,
On-Line #17,
Scene+ #01,
Welcome Press #01,
ZX Konig #04,
Adventurer #01,
Faultless #05,
Faultless #04,
Di Halt #01,
Faultless #01,
Playboy #01,
Crazy News #1,
Faultless #03,
Pioneer #03,
Sinclair Town #02,
ZX Magazine #01,
Eldorado #01,
ZX Magazine #02,
Spectron #01,
ZX News #01,
ZX Konig #02,
200 #W,
Welcome Press #00,
Dune #07,
Subliminal Extacy #01,
Subliminal Extacy #02,
ZX Konig #01,
Subliminal Extacy #00,
Muchomor #01,
Spectrofon #01,
ZX Revija #02,
Outlet #01,
Outlet #1-3