User Tools

Site Tools


draw

Draw routines


;draw line.
;taken from some yugoslavian magazine
;BC-from DE-to
;start point is upper left corner (0,0)
 
draw     ld   a,d
         cp   192
         ret  nc
         ld   a,b
         cp   192
         ret  nc
         ccf
         rra
         scf
         rra
         and  a
         rra
         xor  b
         and  248
         xor  b
         ld   h,a
         ld   a,c
         rlca
         rlca
         rlca
         ld   l,a
         and  56
         cpl
         ld   (lab+1),a
         xor  a
lab      set  0,a
         ex   af,af
         ld   a,l
         xor  b
         and  199
         xor  b
         rlca
         rlca
         ld   l,a
         ld   a,b
         sub  d
         ld   b,0
         jr   nc,n1
         neg
         inc  b
n1       ld   d,a
         ld   a,c
         sub  e
         ld   c,0
         jr   nc,n2
         neg
         inc  c
n2       ld   e,a
         ex   af,af
         push af
         or   (hl)
         ld   (hl),a
         pop  af
         ex   af,af
         or   d
         ret  z
         push hl
         ld   a,d
         cp   e
         jr   c,pox
         ld   hl,levo
         bit  0,c
         jr   z,y1
         ld   hl,desno
y1       ld   (dia+1),hl
         ld   hl,gore
         bit  0,b
         jr   z,y2
         ld   hl,dole
y2       ld   (nast+1),hl
         ld   c,d
n3       srl  c
         ld   hx,d
         ex   af,af
         ld   b,a
         pop  hl
loop     ld   a,c
         sub  e
         ld   c,a
         jr   nc,nast
         add  a,d
         ld   c,a
dia      call 0
nast     call 0
         ld   a,b
         or   (hl)
         ld   (hl),a
         dec  hx
         jr   nz,loop
         ret
 
pox      ld   hl,levo
         bit  0,c
         jr   z,x1
         ld   hl,desno
x1       ld   (nast+1),hl
         ld   hl,gore
         bit  0,b
         jr   z,x2
         ld   hl,dole
x2       ld   (dia+1),hl
         ld   c,e
         ld   e,d
         ld   d,c
         jr   n3
desno    rrc  b
         ret  nc
         inc  hl
         ret
 
levo     rlc  b
         ret  nc
         dec  hl
         ret
 
dole     inc  h
         ld   a,h
         and  7
         ret  nz
         ld   a,h
         sub  8
         ld   h,a
         ld   a,l
         add  a,32
         ld   l,a
         ret  nc
         ld   a,h
         add  a,8
         ld   h,a
         ret
 
gore     dec  h
         ld   a,h
         cpl
         and  7
         ret  nz
         ld   a,h
         add  a,8
         ld   h,a
         ld   a,l
         sub  32
         ld   l,a
         ret  nc
         ld   a,h
         sub  8
         ld   h,a
         ret

Navigation: general . math . graphic . sound . system . other . back to start

draw.txt · Last modified: 2017/02/16 13:37 by darkbyte