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

  1. /
  2. /
  3.  
  4. / as9 -- PDP-11 assembler pass 2
  5.  
  6. eae = 0
  7.  
  8.     .data
  9. symtab:
  10.  
  11. / special variables
  12.  
  13. dotrel: 02; dot:000000 /.
  14.  01; dotdot:000000 /..
  15.  
  16. / register
  17.  
  18. 24;000000 /r0
  19. 24;000001 /r1
  20. 24;000002 /r2
  21. 24;000003 /r3
  22. 24;000004 /r4
  23. 24;000005 /r5
  24. 24;000006 /sp
  25. 24;000007 /pc
  26.  
  27.  
  28. .if eae
  29. /eae & switches
  30.  
  31. 01;177570 /csw
  32. 01;177300 /div
  33. 01;177302 /ac
  34. 01;177304 /mq
  35. 01;177306 /mul
  36. 01;177310 /sc
  37. 01;177311 /sr
  38. 01;177312 /nor
  39. 01;177314 /lsh
  40. 01;177316 /ash
  41.  
  42. .endif
  43.  
  44. / system calls
  45.  
  46. 01;0000001 /exit
  47. 01;0000002 /fork
  48. 01;0000003 /read
  49. 01;0000004 /write
  50. 01;0000005 /open
  51. 01;0000006 /close
  52. 01;0000007 /wait
  53. 01;0000010 /creat
  54. 01;0000011 /link
  55. 01;0000012 /unlink
  56. 01;0000013 /exec
  57. 01;0000014 /chdir
  58. 01;0000015 /time
  59. 01;0000016 /makdir
  60. 01;0000017 /chmod
  61. 01;0000020 /chown
  62. 01;0000021 /break
  63. 01;0000022 /stat
  64. 01;0000023 /seek
  65. 01;0000024 /tell
  66. 01;0000025 /mount
  67. 01;0000026 /umount
  68. 01;0000027 /setuid
  69. 01;0000030 /getuid
  70. 01;0000031 /stime
  71. 01;0000034 /fstat
  72. 01;0000036 /mdate
  73. 01;0000037 /stty
  74. 01;0000040 /gtty
  75. 01;0000042 /nice
  76. 01;0000060 /signal
  77.  
  78. / double operand
  79.  
  80. 13;0010000 /mov
  81. 13;0110000 /movb
  82. 13;0020000 /cmp
  83. 13;0120000 /cmpb
  84. 13;0030000 /bit
  85. 13;0130000 /bitb
  86. 13;0040000 /bic
  87. 13;0140000 /bicb
  88. 13;0050000 /bis
  89. 13;0150000 /bisb
  90. 13;0060000 /add
  91. 13;0160000 /sub
  92.  
  93. / branch
  94.  
  95. 06;0000400 /br
  96. 06;0001000 /bne
  97. 06;0001400 /beq
  98. 06;0002000 /bge
  99. 06;0002400 /blt
  100. 06;0003000 /bgt
  101. 06;0003400 /ble
  102. 06;0100000 /bpl
  103. 06;0100400 /bmi
  104. 06;0101000 /bhi
  105. 06;0101400 /blos
  106. 06;0102000 /bvc
  107. 06;0102400 /bvs
  108. 06;0103000 /bhis
  109. 06;0103000 /bec
  110. 06;0103000 /bcc
  111. 06;0103400 /blo
  112. 06;0103400 /bcs
  113. 06;0103400 /bes
  114.  
  115. / jump/ branch type
  116.  
  117. 35;0000400 /jbr
  118. 36;0001000 /jne
  119. 36;0001400 /jeq
  120. 36;0002000 /jge
  121. 36;0002400 /jlt
  122. 36;0003000 /jgt
  123. 36;0003400 /jle
  124. 36;0100000 /jpl
  125. 36;0100400 /jmi
  126. 36;0101000 /jhi
  127. 36;0101400 /jlos
  128. 36;0102000 /jvc
  129. 36;0102400 /jvs
  130. 36;0103000 /jhis
  131. 36;0103000 /jec
  132. 36;0103000 /jcc
  133. 36;0103400 /jlo
  134. 36;0103400 /jcs
  135. 36;0103400 /jes
  136.  
  137. / single operand
  138.  
  139. 15;0005000 /clr
  140. 15;0105000 /clrb
  141. 15;0005100 /com
  142. 15;0105100 /comb
  143. 15;0005200 /inc
  144. 15;0105200 /incb
  145. 15;0005300 /dec
  146. 15;0105300 /decb
  147. 15;0005400 /neg
  148. 15;0105400 /negb
  149. 15;0005500 /adc
  150. 15;0105500 /adcb
  151. 15;0005600 /sbc
  152. 15;0105600 /sbcb
  153. 15;0005700 /tst
  154. 15;0105700 /tstb
  155. 15;0006000 /ror
  156. 15;0106000 /rorb
  157. 15;0006100 /rol
  158. 15;0106100 /rolb
  159. 15;0006200 /asr
  160. 15;0106200 /asrb
  161. 15;0006300 /asl
  162. 15;0106300 /aslb
  163. 15;0000100 /jmp
  164. 15;0000300 /swab
  165.  
  166. / jsr
  167.  
  168. 07;0004000 /jsr
  169.  
  170. / rts
  171.  
  172. 10;000200 /rts
  173.  
  174. / simple operand
  175.  
  176. 11;104400 /sys
  177.  
  178. / flag-setting
  179.  
  180. 01;0000241 /clc
  181. 01;0000242 /clv
  182. 01;0000244 /clz
  183. 01;0000250 /cln
  184. 01;0000261 /sec
  185. 01;0000262 /sev
  186. 01;0000264 /sez
  187. 01;0000270 /sen
  188.  
  189. / floating point ops
  190.  
  191. 01;170000 / cfcc
  192. 01;170001 / setf
  193. 01;170011 / setd
  194. 01;170002 / seti
  195. 01;170012 / setl
  196. 15;170400 / clrf
  197. 15;170700 / negf
  198. 15;170600 / absf
  199. 15;170500 / tstf
  200. 12;172400 / movf
  201. 14;177000 / movif
  202. 05;175400 / movfi
  203. 14;177400 / movof
  204. 05;176000 / movfo
  205. 14;172000 / addf
  206. 14;173000 / subf
  207. 14;171000 / mulf
  208. 14;174400 / divf
  209. 14;173400 / cmpf
  210. 14;171400 / modf
  211. 14;176400 / movie
  212. 05;175000 / movei
  213. 15;170100 / ldfps
  214. 15;170200 / stfps
  215. 24;000000 / fr0
  216. 24;000001 / fr1
  217. 24;000002 / fr2
  218. 24;000003 / fr3
  219. 24;000004 / fr4
  220. 24;000005 / fr5
  221.  
  222. / 11/45 operations
  223.  
  224. 30;072000 /als (ash)
  225. 30;073000 /alsc (ashc)
  226. 30;070000 /mpy
  227. .if eae-1
  228. 30;070000/ mul
  229. 30;071000 / div
  230. 30;072000 / ash
  231. 30;073000 /ashc
  232. .endif
  233. 30;071000 /dvd
  234. 07;074000 /xor
  235. 15;006700 /sxt
  236. 11;006400 /mark
  237. 31;077000 /sob
  238.  
  239. / specials
  240.  
  241. 16;000000 /.byte
  242. 20;000000 /.even
  243. 21;000000 /.if
  244. 22;000000 /.endif
  245. 23;000000 /.globl
  246. 25;000000 /.text
  247. 26;000000 /.data
  248. 27;000000 /.bss
  249. 32;000000 /.comm
  250.  
  251. start:
  252.     cmp    (sp),$4
  253.     bge    1f
  254.     jmp    aexit
  255. 1:
  256.     cmp    (sp)+,$5
  257.     blt    1f
  258.     mov    $40,defund        / globalize all undefineds
  259. 1:
  260.     tst    (sp)+
  261.     mov    (sp)+,a.tmp1
  262.     mov    (sp)+,a.tmp2
  263.     mov    (sp)+,a.tmp3
  264.     jsr    r5,ofile; a.tmp1
  265.     movb    r0,txtfil
  266.     jsr    r5,ofile; a.tmp2
  267.     movb    r0,fbfil
  268.     jsr    r5,ofile; a.tmp3
  269.     movb    r0,symf
  270.     movb    r0,fin
  271.     sys    creat; a.out; 0
  272.     bec    1f
  273.     jsr    r5,filerr; a.outp
  274. 1:
  275.     movb    r0,fout
  276.     jmp    go
  277.  
  278. / overlaid buffer
  279. inbuf    = start
  280. .    = inbuf+512.
  281.