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

  1. /
  2. /
  3.  
  4. / rh -- simple array l/r values
  5.  
  6. achk    = 1 / 1 to check array bounds
  7. .globl    gal1
  8. .globl    gal2
  9. .globl    gal4
  10. .globl    gal8
  11. .globl    gal16
  12. .globl    gar1
  13. .globl    gar2
  14. .globl    gar4
  15. .globl    gar8
  16. .globl    gar16
  17.  
  18. .globl    rerr
  19.  
  20. gal1:
  21.     tst    (sp)+
  22.     dec    (sp)
  23.     br    1f
  24.  
  25. gal2:
  26.     tst    (sp)+
  27.     dec    (sp)
  28.     asl    (sp)
  29.     br    1f
  30.  
  31. gal4:
  32.     tst    (sp)+
  33.     dec    (sp)
  34.     asl    (sp)
  35.     asl    (sp)
  36.     br    1f
  37.  
  38. gal8:
  39.     tst    (sp)+
  40.     dec    (sp)
  41.     asl    (sp)
  42.     asl    (sp)
  43.     asl    (sp)
  44.     br    1f
  45.  
  46. gal16:
  47.     tst    (sp)+
  48.     dec    (sp)
  49.     asl    (sp)
  50.     asl    (sp)
  51.     asl    (sp)
  52.     asl    (sp)
  53.  
  54. 1:
  55.     cmp    (sp),(r4)+
  56. .if achk
  57.     bhis    9f
  58. .endif
  59.     add    (r4)+,(sp)
  60.     jmp    *(r4)+
  61.  
  62. 9:
  63.     jsr    r5,rerr; 15.
  64.     4
  65.  
  66. gar1:
  67.     tst    (sp)+
  68.     dec    (sp)
  69.     cmp    (sp),(r4)+
  70. .if achk
  71.     bhis    9b
  72. .endif
  73.     add    (r4)+,(sp)
  74.     movb    *(sp)+,r0
  75.     mov    r0,-(sp)
  76.     jmp    *(r4)+
  77.  
  78. gar2:
  79.     tst    (sp)+
  80.     dec    (sp)
  81.     asl    (sp)
  82.     cmp    (sp),(r4)+
  83. .if achk
  84.     bhis    9b
  85. .endif
  86.     add    (r4)+,(sp)
  87.     mov    *(sp)+,-(sp)
  88.     jmp    *(r4)+
  89.  
  90. gar4:
  91.     tst    (sp)+
  92.     dec    (sp)
  93.     mov    (sp)+,r0
  94.     asl    r0
  95.     asl    r0
  96.     cmp    r0,(r4)+
  97. .if achk
  98.     bhis    9b
  99. .endif
  100.     add    (r4)+,r0
  101.     cmp    (r0)+,(r0)+
  102.     mov    -(r0),-(sp)
  103.     mov    -(r0),-(sp)
  104.     jmp    *(r4)+
  105.  
  106. gar8:
  107.     setd
  108.     tst    (sp)+
  109.     dec    (sp)
  110.     asl    (sp)
  111.     asl    (sp)
  112.     asl    (sp)
  113.     cmp    (sp),(r4)+
  114. .if achk
  115.     bhis    9b
  116. .endif
  117.     add    (r4)+,(sp)
  118.     movf    *(sp)+,fr0
  119.     movf    fr0,-(sp)
  120.     jmp    *(r4)+
  121.  
  122. gar16:
  123.     setd
  124.     tst    (sp)+
  125.     dec    (sp)
  126.     mov    (sp)+,r0
  127.     asl    r0
  128.     asl    r0
  129.     asl    r0
  130.     asl    r0
  131.     cmp    r0,(r4)+
  132. .if achk
  133.     bhis    9b
  134. .endif
  135.     add    (r4)+,r0
  136.     movf    (r0)+,fr0
  137.     movf    (r0)+,fr1
  138.     movf    fr1,-(sp)
  139.     movf    fr0,-(sp)
  140.     jmp    *(r4)+
  141.  
  142.