ZXNet эхоконференция «code.zx»


тема: настоящих буйных мало...



от: Oleg Grigoriev
кому: All
дата: 25 Jul 1999

Пусть враги твои, All, умрут без сыновей!

Сидел тут, сидел и со скуки написал часа за полтора процедуру построения
окружности по Брезенхему... Толку с неё никакого, но не выбрасывать же? :)

────[ Здесь начинается файл CIRCLE .C ]───────────────────────
ORG #8000
CALL CR_PTB

LD DE,#7F5F,B,#5E:CALL CIRCLE

HALT:XOR A:IN (#FE):CPL:AND #1F
JR Z,$-#07
RET




;***************************************
;[DE] =X,Y
;[B] =R
;
CIRCLE LD L,B,H,#00
ADD HL,HL
PUSH DE:LD DE,#0003
EX DE,HL
OR A:SBC HL,DE
POP DE
LD C,B,B,#00

CIR0 PUSH DE
PUSH HL,BC

CIR01 LD A,D:ADD A,B:JR C,CIR02
PUSH DE,BC
LD D,A
PUSH DE,BC
LD A,E:ADD A,C:LD E,A
CALL NC,PNTS
POP BC,DE
LD A,E:SUB C:LD E,A
CALL NC,PNTS
POP BC,DE

CIR02 LD A,D:SUB B:JR C,CIR03
PUSH DE,BC
LD D,A
PUSH DE,BC
LD A,E:ADD A,C:LD E,A
CALL NC,PNTS
POP BC,DE
LD A,E:SUB C:LD E,A
CALL NC,PNTS
POP BC,DE

CIR03 LD A,D:ADD A,C:JR C,CIR04
PUSH DE,BC
LD D,A
PUSH DE,BC
LD A,E:ADD A,B:LD E,A
CALL NC,PNTS
POP BC,DE
LD A,E:SUB B:LD E,A
CALL NC,PNTS
POP BC,DE

CIR04 LD A,D:SUB C:JR C,CIR1
LD D,A
PUSH DE,BC
LD A,E:ADD A,B:LD E,A
CALL NC,PNTS
POP BC,DE
LD A,E:SUB B:LD E,A
CALL NC,PNTS

CIR1 POP BC,HL
INC B
BIT 7,H:JR Z,CIR2

PUSH HL
LD L,B,H,#00
LD DE,#0006
JR CIR3

CIR2 DEC C
PUSH HL
LD L,B,H,#00
LD E,C,D,#00
OR A:SBC HL,DE
LD DE,#000A
CIR3 ADD HL,HL,HL,HL,HL,DE
POP DE:ADD HL,DE

POP DE
LD A,C:SUB B:JP NC,CIR0
RET

;***************************************
;[DE] =X,Y
;
PNTS LD H,PNTTB[,L,D,C,(HL)
INC H:LD A,(HL)
INC H:LD L,E:OR (HL)
INC H:LD H,(HL),L,A
LD A,(HL):OR C:LD (HL),A
RET

;***************************************
;
CR_PTB LD HL,PNTTB,A,#80
CRPT0 LD (HL),A:RRCA:INC L
JR NZ,CRPT0

INC H
CRPT1 LD A,L:RRCA:RRCA:RRCA:AND #1F
LD (HL),A:INC L
JR NZ,CRPT1

INC H
LD B,#C0,DE,#4000
CRPT2 CALL CRPTDE0,CRPTDE1:DJNZ CRPT2

LD DE,#0000
CRPT3 CALL CRPTDE0:JR NZ,CRPT3
RET

CRPTDE0 LD (HL),E:INC H
LD (HL),D:DEC H:INC L
RET

CRPTDE1 INC D:LD A,D:AND #07:RET NZ
LD A,E:ADD A,#20:LD E,A:RET C
LD A,D:SUB #08:LD D,A
RET

ORG $^
PNTTB



────[ Здесь кончается файл CIRCLE .C ]────────────────────────



[ WBR, Oleg. ]
[ 21:09 25 July XXXIV A.S. ]




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

Похожие статьи:
Белый попугай - Советский маразм.
Enlight'96 - участники и гости фестиваля (по матеpиалам В. Медноногова).
Эфир - Коля любит Машу, Оля любит Машу, Света любит Машу.
Точка зрения - События в Югославии.
MilleniuM - Партийные размышления: успехи и неудачи виртуального конкурса.

В этот день...   5 мая