summary refs log tree commit diff stats
path: root/INSTALL
blob: 5fc5ca6b8dd6ce871c2c146227e187695c49d90a (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
Installing
==========

You don't need to install anything.

You can run ranger by simply starting the executable file ranger.py
in the top directory of this package.
Use the --clean option and it will leave no trace whatsoever on your system.


If you insist on conventionally install it, use the package manager
of your operating system.  If there is no package or it is out of date,
you can also follow these instructions:


Step by step
============

(This is all done automagically if you type `sudo make install',
though you might want to read the Makefile first)

0. Make sure you have a recent version of python, including the
   curses module, which is the case if this shell command prints no errors:
   python -c 'import curses'


1. Copy the file "ranger.py" into any of the directories in the PATH
   environment variable, for example to "/usr/bin/ranger"


2. Copy the directory "ranger" into one of the python module search
   paths, for example to "/usr/lib/python2.6/site-packages/ranger".

   Ensure that the path is listed by the command:
   python -c 'import sys; print("\n".join(sys.path))'


Uninstalling
============

Use your package manager to uninstall ranger.  If you manually installed
it, revert the steps described above.

Ranger can also create a configuration directory at ~/.ranger which
you might want to remove as well.
/html/subx/examples/ex7.subx.html?h=main&id=608a7fa8d0faf9a3e3d182d9eabe969804443aab'>608a7fa8 ^
695f9bf8 ^
608a7fa8 ^















c9bda4d1 ^
608a7fa8 ^
a0d3cac4 ^






ee0e67b9 ^

a0d3cac4 ^
























































































608a7fa8 ^



1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159



                                                                                          
                                 

                                                

                                                                                                      
                                                 

                       

                                                                                           
                    
                                     
                                
                                  
           
                                  
                                
                                                                           















                                                                                 
                                                  















                                                                              
                                                                                                                               
                         






                                                                                                                                                     

                                                                                                                                        
























































































                                                                                                                                                                                                                                                                                                                                                                                             



                                     
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<title>Mu - apps/ex7.subx</title>
<meta name="Generator" content="Vim/8.1">
<meta name="plugin-version" content="vim8.1_v1">
<meta name="syntax" content="none">
<meta name="settings" content="number_lines,use_css,no_foldcolumn,expand_tabs,line_ids,prevent_copy=">
<meta name="colorscheme" content="minimal-light">
<style type="text/css">
<!--
pre { font-family: monospace; color: #000000; background-color: #c6c6c6; }
body { font-size:12pt; font-family: monospace; color: #000000; background-color: #c6c6c6; }
a { color:inherit; }
* { font-size:12pt; font-size: 1em; }
.subxComment { color: #005faf; }
.subxS2Comment { color: #8a8a8a; }
.LineNr { }
.subxS1Comment { color: #0000af; }
.SpecialChar { color: #d70000; }
.Normal { color: #000000; background-color: #c6c6c6; padding-bottom: 1px; }
-->
</style>

<script type='text/javascript'>
<!--

/* function to open any folds containing a jumped-to line before jumping to it */
function JumpToLine()
{
  var lineNum;
  lineNum = window.location.hash;
  lineNum = lineNum.substr(1); /* strip off '#' */

  if (lineNum.indexOf('L') == -1) {
    lineNum = 'L'+lineNum;
  }
  var lineElem = document.getElementById(lineNum);
  /* Always jump to new location even if the line was hidden inside a fold, or
   * we corrected the raw number to a line ID.
   */
  if (lineElem) {
    lineElem.scrollIntoView(true);
  }
  return true;
}
if ('onhashchange' in window) {
  window.onhashchange = JumpToLine;
}

-->
</script>
</head>
<body onload='JumpToLine();'>
<a href='https://github.com/akkartik/mu/blob/master/apps/ex7.subx'>https://github.com/akkartik/mu/blob/master/apps/ex7.subx</a>
<pre id='vimCodeElement'>
<span id="L1" class="LineNr"> 1 </span><span class="subxComment"># Example showing file syscalls.</span>
<span id="L2" class="LineNr"> 2 </span><span class="subxComment">#</span>
<span id="L3" class="LineNr"> 3 </span><span class="subxComment"># Create a file, open it for writing, write a character to it, close it, open</span>
<span id="L4" class="LineNr"> 4 </span><span class="subxComment"># it for reading, read a character from it, close it, delete it, and return</span>
<span id="L5" class="LineNr"> 5 </span><span class="subxComment"># the character read.</span>
<span id="L6" class="LineNr"> 6 </span><span class="subxComment">#</span>
<span id="L7" class="LineNr"> 7 </span><span class="subxComment"># To run:</span>
<span id="L8" class="LineNr"> 8 </span><span class="subxComment">#   $ ./bootstrap translate init.linux apps/ex7.subx -o apps/ex7</span>
<span id="L9" class="LineNr"> 9 </span><span class="subxComment">#   $ ./bootstrap run apps/ex7</span>
<span id="L10" class="LineNr">10 </span><span class="subxComment"># Expected result:</span>
<span id="L11" class="LineNr">11 </span><span class="subxComment">#   $ echo $?</span>
<span id="L12" class="LineNr">12 </span><span class="subxComment">#   97</span>
<span id="L13" class="LineNr">13 </span>
<span id="L14" class="LineNr">14 </span>== code
<span id="L15" class="LineNr">15 </span><span class="subxComment">#   instruction                     effective address                                                   register    displacement    immediate</span>
<span id="L16" class="LineNr">16 </span><span class="subxS1Comment"># . op          subop               mod             rm32          base        index         scale       r32</span>
<span id="L17" class="LineNr">17 </span><span class="subxS1Comment"># . 1-3 bytes   3 bits              2 bits          3 bits        3 bits      3 bits        2 bits      2 bits      0/1/2/4 bytes   0/1/2/4 bytes</span>
<span id="L18" class="LineNr">18 </span>
<span id="L19" class="LineNr">19 </span><span class="SpecialChar">Entry</span>:
<span id="L20" class="LineNr">20 </span>    <span class="subxComment"># creat(Filename)</span>
<span id="L21" class="LineNr">21 </span>    bb/copy-to-ebx  <span class="SpecialChar"><a href='ex7.subx.html#L94'>Filename</a></span>/imm32
<span id="L22" class="LineNr">22 </span>    b9/copy-to-ecx  0x180/imm32/fixed-perms
<span id="L23" class="LineNr">23 </span>    e8/call  syscall_creat/disp32
<span id="L24" class="LineNr">24 </span>
<span id="L25" class="LineNr">25 </span>    <span class="subxComment"># stream = open(Filename, O_WRONLY, 0)  # we can't use 'fd' because it looks like a hex byte</span>
<span id="L26" class="LineNr">26 </span>    bb/copy-to-ebx  <span class="SpecialChar"><a href='ex7.subx.html#L94'>Filename</a></span>/imm32
<span id="L27" class="LineNr">27 </span>    b9/copy-to-ecx  1/imm32/wronly
<span id="L28" class="LineNr">28 </span>    ba/copy-to-edx  0x180/imm32/fixed-perms
<span id="L29" class="LineNr">29 </span>    e8/call  syscall_open/disp32
<span id="L30" class="LineNr">30 </span>    <span class="subxComment"># save stream</span>
<span id="L31" class="LineNr">31 </span>    bb/copy-to-ebx  <span class="SpecialChar"><a href='ex7.subx.html#L88'>Stream</a></span>/imm32
<span id="L32" class="LineNr">32 </span>    89/copy                         0/mod/indirect  3/rm32/ebx   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          0/r32/eax  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy eax to *ebx</span>
<span id="L33" class="LineNr">33 </span>
<span id="L34" class="LineNr">34 </span>    <span class="subxComment"># write(Stream, &quot;a&quot;, 1)</span>
<span id="L35" class="LineNr">35 </span>    <span class="subxS1Comment"># . load stream</span>
<span id="L36" class="LineNr">36 </span>    bb/copy-to-ebx  <span class="SpecialChar"><a href='ex7.subx.html#L88'>Stream</a></span>/imm32
<span id="L37" class="LineNr">37 </span>    8b/copy                         0/mod/indirect  3/rm32/ebx   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          3/r32/ebx  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy *ebx to ebx</span>
<span id="L38" class="LineNr">38 </span>    <span class="subxS1Comment"># .</span>
<span id="L39" class="LineNr">39 </span>    b9/copy-to-ecx  <span class="SpecialChar"><a href='ex7.subx.html#L90'>A</a></span>/imm32
<span id="L40" class="LineNr">40 </span>    ba/copy-to-edx  1/imm32/size
<span id="L41" class="LineNr">41 </span>    e8/call  syscall_write/disp32
<span id="L42" class="LineNr">42 </span>
<span id="L43" class="LineNr">43 </span>    <span class="subxComment"># close(Stream)</span>
<span id="L44" class="LineNr">44 </span>    <span class="subxS1Comment"># . load stream</span>
<span id="L45" class="LineNr">45 </span>    bb/copy-to-ebx  <span class="SpecialChar"><a href='ex7.subx.html#L88'>Stream</a></span>/imm32
<span id="L46" class="LineNr">46 </span>    8b/copy                         0/mod/indirect  3/rm32/ebx   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          3/r32/ebx  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy *ebx to ebx</span>
<span id="L47" class="LineNr">47 </span>    <span class="subxS1Comment"># .</span>
<span id="L48" class="LineNr">48 </span>    e8/call  syscall_close/disp32
<span id="L49" class="LineNr">49 </span>
<span id="L50" class="LineNr">50 </span>    <span class="subxComment"># stream = open(Filename, O_RDONLY, 0)</span>
<span id="L51" class="LineNr">51 </span>    bb/copy-to-ebx  <span class="SpecialChar"><a href='ex7.subx.html#L94'>Filename</a></span>/imm32
<span id="L52" class="LineNr">52 </span>    b9/copy-to-ecx  0/imm32/rdonly
<span id="L53" class="LineNr">53 </span>    ba/copy-to-edx  0x180/imm32/fixed-perms
<span id="L54" class="LineNr">54 </span>    e8/call  syscall_open/disp32
<span id="L55" class="LineNr">55 </span>    <span class="subxS1Comment"># . save Stream</span>
<span id="L56" class="LineNr">56 </span>    bb/copy-to-ebx  <span class="SpecialChar"><a href='ex7.subx.html#L88'>Stream</a></span>/imm32
<span id="L57" class="LineNr">57 </span>    89/copy                         0/mod/indirect  3/rm32/ebx   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          0/r32/eax  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy eax to *ebx</span>
<span id="L58" class="LineNr">58 </span>
<span id="L59" class="LineNr">59 </span>    <span class="subxComment"># read(Stream, B, 1)</span>
<span id="L60" class="LineNr">60 </span>    <span class="subxS1Comment"># . load stream</span>
<span id="L61" class="LineNr">61 </span>    bb/copy-to-ebx  <span class="SpecialChar"><a href='ex7.subx.html#L88'>Stream</a></span>/imm32
<span id="L62" class="LineNr">62 </span>    8b/copy                         0/mod/indirect  3/rm32/ebx   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          3/r32/ebx  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy *ebx to ebx</span>
<span id="L63" class="LineNr">63 </span>    <span class="subxS1Comment"># .</span>
<span id="L64" class="LineNr">64 </span>    b9/copy-to-ecx  <span class="SpecialChar"><a href='ex7.subx.html#L92'>B</a></span>/imm32
<span id="L65" class="LineNr">65 </span>    ba/copy-to-edx  1/imm32/size
<span id="L66" class="LineNr">66 </span>    e8/call  syscall_read/disp32
<span id="L67" class="LineNr">67 </span>
<span id="L68" class="LineNr">68 </span>    <span class="subxComment"># close(Stream)</span>
<span id="L69" class="LineNr">69 </span>    <span class="subxS1Comment"># . load stream</span>
<span id="L70" class="LineNr">70 </span>    bb/copy-to-ebx  <span class="SpecialChar"><a href='ex7.subx.html#L88'>Stream</a></span>/imm32
<span id="L71" class="LineNr">71 </span>    8b/copy                         0/mod/indirect  3/rm32/ebx   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          3/r32/ebx  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy *ebx to ebx</span>
<span id="L72" class="LineNr">72 </span>    <span class="subxComment">#</span>
<span id="L73" class="LineNr">73 </span>    e8/call  syscall_close/disp32
<span id="L74" class="LineNr">74 </span>
<span id="L75" class="LineNr">75 </span>    <span class="subxComment"># unlink(filename)</span>
<span id="L76" class="LineNr">76 </span>    bb/copy-to-ebx  <span class="SpecialChar"><a href='ex7.subx.html#L94'>Filename</a></span>/imm32
<span id="L77" class="LineNr">77 </span>    e8/call  syscall_unlink/disp32
<span id="L78" class="LineNr">78 </span>
<span id="L79" class="LineNr">79 </span>    <span class="subxComment"># exit(b)</span>
<span id="L80" class="LineNr">80 </span>    <span class="subxS1Comment"># . load b</span>
<span id="L81" class="LineNr">81 </span>    bb/copy-to-ebx  <span class="SpecialChar"><a href='ex7.subx.html#L92'>B</a></span>/imm32
<span id="L82" class="LineNr">82 </span>    8b/copy                         0/mod/indirect  3/rm32/ebx   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          3/r32/ebx  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy *ebx to ebx</span>
<span id="L83" class="LineNr">83 </span>    <span class="subxComment">#</span>
<span id="L84" class="LineNr">84 </span>    e8/call  syscall_exit/disp32
<span id="L85" class="LineNr">85 </span>
<span id="L86" class="LineNr">86 </span>== data
<span id="L87" class="LineNr">87 </span>
<span id="L88" class="LineNr">88 </span><span class="SpecialChar">Stream</span>:
<span id="L89" class="LineNr">89 </span>    0/imm32
<span id="L90" class="LineNr">90 </span><span class="SpecialChar">A</span>:
<span id="L91" class="LineNr">91 </span>    61/imm32/A
<span id="L92" class="LineNr">92 </span><span class="SpecialChar">B</span>:
<span id="L93" class="LineNr">93 </span>    0/imm32
<span id="L94" class="LineNr">94 </span><span class="SpecialChar">Filename</span>:
<span id="L95" class="LineNr">95 </span>    2e 66 6f 6f 00 00 00 00
<span id="L96" class="LineNr">96 </span><span class="subxComment">#   .  f  o  o  null</span>
<span id="L97" class="LineNr">97 </span>
<span id="L98" class="LineNr">98 </span><span class="subxS2Comment"># . . vim&#0058;nowrap:textwidth=0</span>
</pre>
</body>
</html>
<!-- vim: set foldmethod=manual : -->