home *** CD-ROM | disk | FTP | other *** search
/ minnie.tuhs.org / unixen.tar / unixen / PDP-11 / Trees / V6 / usr / source / fort / rt2 / plot.s < prev    next >
Encoding:
Text File  |  1975-07-17  |  1.7 KB  |  148 lines

  1. /
  2. /
  3.  
  4. / move, line
  5.  
  6. sct = 2
  7. / fortran vt0 interfaces
  8.  
  9. / erase screen
  10.  
  11. erase.:    temp
  12.     .+2
  13.     jsr    pc,setfil
  14.     mov    f,r0
  15.     sys    write; erase; 2
  16.     jmp    retrn
  17.  
  18. /    move(x, y)
  19. /
  20. /    sets current x,y to arguments
  21. /
  22.  
  23. .globl    move.
  24. .globl    line.
  25. .globl    erase.
  26. .globl    frame.
  27. .globl    arc.
  28. .globl    circle.
  29.  
  30. .globl    temp
  31. .globl    retrn
  32.  
  33. frame.:    temp
  34.     .+2
  35.     jsr    pc,setfil
  36.     mov    2(r3),r0
  37.     movb    2(r0),frame+1
  38.     mov    f,r0
  39.     sys    write; frame; 2
  40.     jmp    retrn
  41.  
  42. move.:    temp
  43.     .+2
  44.     jsr    pc,garg
  45.     mov    r0,x
  46.     mov    r1,y
  47.     jmp    retrn
  48.  
  49. /    line(x, y)
  50. /
  51. /    plot vector from current x,y
  52. /    to arguments, setting current
  53. /    x,y when done to arguments
  54. /
  55.  
  56. line.:    temp
  57.     .+2
  58.     jsr    pc,garg
  59.     mov    r0,x1
  60.     mov    r1,y1
  61.     movb    $3,command
  62.     mov    f,r0
  63.     sys    write; command; 9
  64.     mov    x1,x
  65.     mov    y1,y
  66.     jmp    retrn
  67.  
  68. / call circle(x, y, radius)
  69. / circle's center at x, y
  70.  
  71. circle.:temp
  72.     .+2
  73.     jsr    pc,garg
  74.     mov    r0,x
  75.     mov    r1,y
  76.     mov    6(r3),r0
  77.     mov    2(r0),r0
  78.     ash    $2,r0
  79.     mov    r0,x1
  80.     movb    $5,command
  81.     mov    f,r0
  82.     sys    write; command; 7
  83.     jmp    retrn
  84.  
  85. / call arc(xo, yo, x1, y1, x2, y2)
  86. / plot circle arc: origin xo,yo;
  87. / counterclockwise from x1,y1 to x2,y2
  88.  
  89. arc.:    temp
  90.     .+2
  91.     jsr    pc,garg
  92.     mov    r0,x
  93.     mov    r1,y
  94.     cmp    (r3)+,(r3)+
  95.     jsr    pc,garg
  96.     mov    r0,x1
  97.     mov    r1,y1
  98.     cmp    (r3)+,(r3)+
  99.     jsr    pc,garg
  100.     mov    r0,x2
  101.     mov    r1,y2
  102.     movb    $6,command
  103.     mov    f,r0
  104.     sys    write; command; 13.
  105.     sub    $8.,r3
  106.     jmp    retrn
  107.  
  108. setfil:
  109.     tst    f
  110.     bne    1f
  111.     sys    creat; vt; 17
  112.     bes    9f
  113.     mov    r0,f
  114. 1:
  115.     rts    pc
  116.  
  117. garg:
  118.     jsr    pc,setfil
  119.     mov    2(r3),r0
  120.     mov    2(r0),r0
  121.     mov    4(r3),r1
  122.     mov    2(r1),r1
  123.     ash    $2,r0
  124.     ash    $2,r1
  125.     sub    $2048.,r0
  126.     sub    $2048.,r1
  127.     rts    pc
  128. 9:
  129.     mov    $1,r0
  130.     sys    write; bmes; emes-bmes
  131.     sys    exit
  132.  
  133. frame:    .byte    4,0
  134. erase:    .byte    1,1
  135.     .byte    0
  136. vt:    </dev/vt0\0>
  137. bmes:    <VT unwritable.\n>; emes:
  138.     .bss
  139.     .=.+1
  140. command:.=.+1
  141. x:    .=.+2
  142. y:    .=.+2
  143. x1:    .=.+2
  144. y1:    .=.+2
  145. x2:    .=.+2
  146. y2:    .=.+2
  147. f:    .=.+2
  148.