[code]ORG 000H
;
L0200:EQU 200H
L0204:EQU 204H
TVC:EQU 0F809H
;
MVI C,1FH
CALL TVC
ST:LXI H,00101H ;X1Y1
LXI D,0FEFEH ;X2Y2
; START
MOV A,D
SUB H
JNC LHD ; X2>X1
XCHG
CMA
LHD:ACI 1
MOV D,A ; X
MOV A,E
SUB L
JNC L36 ; Y2>Y1 3-6
CMA ; 3-12
ACI 1
MOV E,A ; Y
MOV A,D
CMP E
JNC L32 ; X>Y 3-2
CMC ; 12-1
JMP L121
L36:INR A
MOV E,A ; Y
MOV A,D
CMP E
JNC L34 ; X>Y 3-4
L121:MOV D,E ; 5-6
MOV E,A
MVI A,0
L32:CMC
L34:LXI SP,L0204
PUSH H
PUSH D
LXI SP,MOD
POP H ; DCR D,JNZ
POP B ; LTA
POP D ; MOV A,B,INR L
LXI SP,LDL
JNC L36A
MVI D,2DH
L36A:CPI 0
JNZ L126
LXI B,LDOT
PUSH B
PUSH H
PUSH D
JMP EXIT
MOD:DCR D ; zamenqemoe telo 6 bajt
JNZ LTA
MOV A,B
INR L
L126:PUSH D
PUSH B
PUSH H
EXIT:LXI SP,L0200
POP D
POP H
; LINE
MOV A,E
STA LDL+6
STA LDL+12
MOV A,D
MVI D,0FFH
LD:INR D ; прямой фрагмент D
SUB E
JNC LD
ADD E
MOV C,A ; остаток в C
STA LDL+1
MOV A,D
STA LDL+3
MOV A,H
ANI 7
MOV B,A
MOV A,H
ANI 0F8H
RAR
RAR
RAR
ADI 0C0H
MOV H,A
XRA A
STC
LP0:RAR ; стартовый бит
DCR B
JP LP0
JMP LST
; PLOT
LTA:MOV A,B
RRC
JNC LST
INR H
LST:MOV B,A
LDOT:ORA M
MOV M,A
DCR D
JNZ LTA
MOV A,B
INR L
LDL:MVI A,0 ; начальный остаток
MVI D,0 ; прямой фрагмент
ADD C
CPI 0 ; -Y
JC LNO
INR D
SUI 0 ; -Y
LNO:MOV C,A
DCR E
JNZ LTA
; END
[свернуть]