home *** CD-ROM | disk | FTP | other *** search
/ minnie.tuhs.org / unixen.tar / unixen / PDP-11 / Trees / V6 / usr / source / fort / f1 / f11.s next >
Encoding:
Text File  |  1975-07-17  |  1.8 KB  |  151 lines

  1. /
  2. /
  3.  
  4. / f11 -- fortran command
  5. /
  6.  
  7. .globl    pass1
  8.  
  9. .globl    fptrap
  10. .globl    getline
  11. .globl    flush
  12. .globl    perror
  13. .globl    lookup
  14. .globl    getype
  15. .globl    ssubr
  16. .globl    sfunc
  17. .globl    sbloc
  18. .globl    sextr
  19. .globl    sdime
  20. .globl    scomm
  21. .globl    sequi
  22. .globl    sdata
  23. .globl    sform
  24. .globl    simpl
  25. .globl    stype
  26. .globl    isagn
  27. .globl    ptemp
  28. .globl    funok
  29. .globl    signoff
  30. .globl    fopen
  31. .globl    fcreat
  32. .globl    lookid
  33. .globl    tfil1, tfil2
  34. .globl    tfildiag
  35.  
  36. pass1:
  37.     sys    signal; 4; fptrap
  38.     cmp    (sp)+,$2
  39.     bge    1f
  40. 2:
  41.     mov    $1,r0
  42.     sys    write; mes2; emes2-mes2
  43.     clr    r0
  44.     sys    seek; 0; 2
  45.     mov    $-1,r0        / bad status
  46.     sys    exit
  47. 1:
  48.     tst    (sp)+
  49.     mov    (sp)+,r0
  50.     jsr    r5,fopen; ibuf
  51.     bcs    2b
  52.     mov    $tfil1,r0
  53.     jsr    r5,fcreat; obuf
  54.     bcs    2f
  55.     mov    $tfil2,r0
  56.     jsr    r5,fcreat; tbuf
  57.     bcc    1f
  58. 2:
  59.     jmp    tfildiag
  60. 1:
  61.  
  62. / data segment initialization
  63.  
  64.     mov    $2,nxtaloc
  65.     mov    $errb,errp
  66.     mov    $esymtab,esymp
  67.     mov    $namebuf,namep
  68.     movb    $'_,symbuf-1
  69.     jsr    r5,lookid; blankc
  70.     bis    $40,symtab(r3)
  71.     mov    $imptab,r3
  72. 1:
  73.     mov    $realcon,r0        / real*4
  74.     cmp    r3,$imptab+[2*['i-'a]]
  75.     blo    2f
  76.     cmp    r3,$imptab+[2*['n-'a]]
  77.     bhi    2f
  78.     mov    $intcon,r0        / integer*4
  79. 2:
  80.     mov    r0,[2*26.](r3)        / lower case
  81.     mov    r0,(r3)+        / upper case
  82.     cmp    r3,$imptab+[2*26.]
  83.     blo    1b
  84.  
  85. / call pass1
  86.  
  87. /    main scan loop for pass1
  88. /    picks up non executable statements
  89. /
  90.  
  91. scan1:
  92.     jsr    r5,getline
  93.     mov    $line,r1
  94.     jsr    r5,isagn
  95.         br 2f
  96.     mov    r1,r2
  97.     jsr    r5,lookup; stmtab
  98.         br 1f
  99.     mov    r2,r1
  100.     jsr    r5,*sublst(r0)
  101.     mov    pc,funok
  102.     jsr    r5,perror
  103.     br    scan1
  104. 1:
  105.     jsr    r5,getype
  106.         br 2f
  107.     mov    r2,r1
  108.     jsr    r5,stype
  109.     jsr    r5,perror
  110.     mov    pc,funok
  111.     br    scan1
  112. 2:
  113.     jsr    r5,ptemp; 'l; efno; line
  114.     jsr    r5,flush; tbuf
  115.     jsr    r5,signoff; 1
  116.  
  117. sublst:
  118.     ssubr
  119.     sfunc
  120.     sbloc
  121.     sextr
  122.     sdime
  123.     scomm
  124.     sequi
  125.     sdata
  126.     sform
  127.     simpl
  128.  
  129. stmtab:
  130.     <subroutine\0>
  131.     <function\0>
  132.     <blockdata\0>
  133.     <external\0>
  134.     <dimension\0>
  135.     <common\0>
  136.     <equivalence\0>
  137.     <data\0>
  138.     <format\0>
  139.     <implicit\0>
  140.     <\0>
  141.     .even
  142.  
  143.  
  144. mes2:
  145.     <Input file?\n>
  146. emes2:
  147. blankc:
  148.     <_\n\0>
  149.     .even
  150.  
  151.