Код:
void Basic_CIRCLEW_EI (unsigned char cx, unsigned char cy, int radius) __naked {
__asm
LD IY, #0x5C3A
POP DE
POP BC ; BC = YX
POP HL ; HL = radius
PUSH HL
PUSH BC
PUSH DE
LD A, H
OR L
RET Z
BIT 7, H
RET NZ
PUSH IX
DI
LD D, #0
LD E, C
LD C, B
LD B, D
PUSH DE
LD DE, #0
PUSH DE
PUSH BC
PUSH HL
LD IX, #0
ADD IX, SP
PUSH HL
EXX
POP HL
ADD HL, HL
EX DE, HL
LD HL, #3
AND A
SBC HL, DE
EXX
JR ENT1$
CIRCLOOP1$:
AND A
SBC HL, DE
JP M, EXT1$
POP DE
POP HL
ADD HL, DE
EX DE, HL
POP BC
POP HL
ADD HL, BC
LD SP, IX
CALL WRAP1$
POP BC
POP HL
POP DE
ADD HL, DE
EX DE, HL
POP HL
ADD HL, BC
LD SP, IX
CALL WRAP1$
POP DE
POP HL
AND A
SBC HL, DE
EX DE, HL
POP BC
POP HL
AND A
SBC HL, BC
LD SP, IX
CALL WRAP1$
POP BC
POP HL
POP DE
AND A
SBC HL, DE
EX DE, HL
POP HL
AND A
SBC HL, BC
LD SP, IX
CALL WRAP1$
ENT1$:
POP DE
POP HL
ADD HL, DE
EX DE, HL
POP BC
POP HL
AND A
SBC HL, BC
LD SP, IX
CALL WRAP1$
POP BC
POP HL
POP DE
ADD HL, DE
EX DE, HL
POP HL
AND A
SBC HL, BC
LD SP, IX
CALL WRAP1$
POP DE
POP HL
AND A
SBC HL, DE
EX DE, HL
POP BC
POP HL
ADD HL, BC
LD SP, IX
CALL WRAP1$
POP BC
POP HL
POP DE
LD (POSITIV1$+1), DE
AND A
SBC HL, DE
EX DE, HL
POP HL
ADD HL, BC
LD SP, IX
CALL WRAP1$
EXX
EX DE, HL
BIT 7, D
JR Z, POSITIV1$
LD HL, (POSITIV1$+1)
ADD HL, HL
ADD HL, HL
LD BC, #6
JR CALCDONE1$
POSITIV1$:
LD HL, #0
POP BC
DEC BC
PUSH BC
AND A
SBC HL, BC
ADD HL, HL
ADD HL, HL
LD BC, #0xA
CALCDONE1$:
ADD HL, BC
ADD HL, DE
EXX
POP HL
POP DE
POP DE
INC DE
PUSH DE
LD SP, IX
JP CIRCLOOP1$
EXT1$:
LD HL, #8
ADD HL, SP
LD SP, HL
POP IX
EI
RET
WRAP1$:
LD A, D
OR A
RET NZ
LD A, H
OR A
RET NZ
LD A, E
CP #0xB0
RET NC
LD B, E
LD C, L
JP 0x22E5
__endasm;
}