837935fd3f673d9442f436c90cffd016411947f0
[fifth.git] / doc / index.html
1 <!doctype html>
2 <html lang="en">
3 <head>
4 <title>Fifth - virtual machine, operating system, programming language</title>
5 <!-- 2017-01-21 Sat 22:20 -->
6 <meta charset="utf-8">
7 <meta name="viewport" content="width=device-width, initial-scale=1">
8 <meta name="generator" content="Org-mode">
9 <meta name="author" content="Svjatoslav Agejenko">
10 <link href="https://bootswatch.com/darkly/bootstrap.min.css" rel="stylesheet">
11 <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/1.11.2/jquery.min.js"></script>
12 <script src="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.3.1/js/bootstrap.min.js"></script>"
13 <style type="text/css">
14 footer {background-color: #111 !important;}
15 pre {background-color: #111; color: #ccc;}
16 </style>
17 <style type="text/css">
18 /* org mode styles on top of twbs */
19
20 html {
21     position: relative;
22     min-height: 100%;
23 }
24
25 body {
26     font-size: 18px;
27     margin-bottom: 105px;
28 }
29
30 footer {
31     position: absolute;
32     bottom: 0;
33     width: 100%;
34     height: 101px;
35     background-color: #f5f5f5;
36 }
37
38 footer > div {
39     padding: 10px;
40 }
41
42 footer p {
43     margin: 0 0 5px;
44     text-align: center;
45     font-size: 16px;
46 }
47
48 #table-of-contents {
49     margin-top: 20px;
50     margin-bottom: 20px;
51 }
52
53 blockquote p {
54     font-size: 18px;
55 }
56
57 pre {
58     font-size: 16px;
59 }
60
61 .footpara {
62     display: inline-block;
63 }
64
65 figcaption {
66   font-size: 16px;
67   color: #666;
68   font-style: italic;
69   padding-bottom: 15px;
70 }
71
72 /* from twbs docs */
73
74 .bs-docs-sidebar.affix {
75     position: static;
76 }
77 @media (min-width: 768px) {
78     .bs-docs-sidebar {
79         padding-left: 20px;
80     }
81 }
82
83 /* All levels of nav */
84 .bs-docs-sidebar .nav > li > a {
85     display: block;
86     padding: 4px 20px;
87     font-size: 14px;
88     font-weight: 500;
89     color: #999;
90 }
91 .bs-docs-sidebar .nav > li > a:hover,
92 .bs-docs-sidebar .nav > li > a:focus {
93     padding-left: 19px;
94     color: #A1283B;
95     text-decoration: none;
96     background-color: transparent;
97     border-left: 1px solid #A1283B;
98 }
99 .bs-docs-sidebar .nav > .active > a,
100 .bs-docs-sidebar .nav > .active:hover > a,
101 .bs-docs-sidebar .nav > .active:focus > a {
102     padding-left: 18px;
103     font-weight: bold;
104     color: #A1283B;
105     background-color: transparent;
106     border-left: 2px solid #A1283B;
107 }
108
109 /* Nav: second level (shown on .active) */
110 .bs-docs-sidebar .nav .nav {
111     display: none; /* Hide by default, but at >768px, show it */
112     padding-bottom: 10px;
113 }
114 .bs-docs-sidebar .nav .nav > li > a {
115     padding-top: 1px;
116     padding-bottom: 1px;
117     padding-left: 30px;
118     font-size: 12px;
119     font-weight: normal;
120 }
121 .bs-docs-sidebar .nav .nav > li > a:hover,
122 .bs-docs-sidebar .nav .nav > li > a:focus {
123     padding-left: 29px;
124 }
125 .bs-docs-sidebar .nav .nav > .active > a,
126 .bs-docs-sidebar .nav .nav > .active:hover > a,
127 .bs-docs-sidebar .nav .nav > .active:focus > a {
128     padding-left: 28px;
129     font-weight: 500;
130 }
131
132 /* Nav: third level (shown on .active) */
133 .bs-docs-sidebar .nav .nav .nav {
134     padding-bottom: 10px;
135 }
136 .bs-docs-sidebar .nav .nav .nav > li > a {
137     padding-top: 1px;
138     padding-bottom: 1px;
139     padding-left: 40px;
140     font-size: 12px;
141     font-weight: normal;
142 }
143 .bs-docs-sidebar .nav .nav .nav > li > a:hover,
144 .bs-docs-sidebar .nav .nav .nav > li > a:focus {
145     padding-left: 39px;
146 }
147 .bs-docs-sidebar .nav .nav .nav > .active > a,
148 .bs-docs-sidebar .nav .nav .nav > .active:hover > a,
149 .bs-docs-sidebar .nav .nav .nav > .active:focus > a {
150     padding-left: 38px;
151     font-weight: 500;
152 }
153
154 /* Show and affix the side nav when space allows it */
155 @media (min-width: 992px) {
156     .bs-docs-sidebar .nav > .active > ul {
157         display: block;
158     }
159     /* Widen the fixed sidebar */
160     .bs-docs-sidebar.affix,
161     .bs-docs-sidebar.affix-bottom {
162         width: 213px;
163     }
164     .bs-docs-sidebar.affix {
165         position: fixed; /* Undo the static from mobile first approach */
166         top: 20px;
167     }
168     .bs-docs-sidebar.affix-bottom {
169         position: absolute; /* Undo the static from mobile first approach */
170     }
171     .bs-docs-sidebar.affix .bs-docs-sidenav,.bs-docs-sidebar.affix-bottom .bs-docs-sidenav {
172         margin-top: 0;
173         margin-bottom: 0
174     }
175 }
176 @media (min-width: 1200px) {
177     /* Widen the fixed sidebar again */
178     .bs-docs-sidebar.affix-bottom,
179     .bs-docs-sidebar.affix {
180         width: 263px;
181     }
182 }
183 </style>
184 <script type="text/javascript">
185 $(function() {
186     'use strict';
187
188     $('.bs-docs-sidebar li').first().addClass('active');
189
190     $(document.body).scrollspy({target: '.bs-docs-sidebar'});
191
192     $('.bs-docs-sidebar').affix();
193 });
194 </script>
195
196 <script type="text/x-mathjax-config">
197 MathJax.Hub.Config({
198   displayAlign: "center",
199   displayIndent: "2em",
200   messageStyle: "none",
201   "HTML-CSS": {
202     scale: 100,
203     styles: {
204       ".MathJax_Display": {
205         "font-size": "100%"
206       }
207     }
208   },
209   "SVG": {
210     scale: 100,
211     styles: {
212       ".MathJax_SVG_Display": {
213         "font-size": "100%",
214         "margin-left": "-2.281em"
215       }
216     }
217   }
218 });
219 </script>
220 <script type="text/javascript" src="https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS_SVG"></script>
221 </head>
222 <body>
223 <div id="content" class="container">
224 <div class="row"><div class="col-md-9"><h1 class="title">Fifth - virtual machine, operating system, programming language</h1>
225 <hr >
226 <ul class="org-ul">
227 <li><a href="http://www2.svjatoslav.eu/gitweb/?p=sixth.git;a=snapshot;h=HEAD;sf=tgz">download latest snapshot</a>
228 </li>
229
230 <li>This program is free software; you can redistribute it and/or modify it under
231 the terms of version 3 of the <a href="https://www.gnu.org/licenses/lgpl.html">GNU Lesser General Public License</a> or later as
232 published by the Free Software Foundation.
233 </li>
234
235 <li>Program author:
236 <ul class="org-ul">
237 <li>Svjatoslav Agejenko
238 </li>
239 <li>Homepage: <a href="http://svjatoslav.eu">http://svjatoslav.eu</a>
240 </li>
241 <li>Email: <a href="mailto://svjatoslav@svjatoslav.eu">mailto://svjatoslav@svjatoslav.eu</a>
242 </li>
243 </ul>
244 </li>
245
246 <li><a href="http://svjatoslav.eu/programs.jsp">other applications hosted at svjatoslav.eu</a>
247 </li>
248 </ul>
249
250 <div id="outline-container-sec-1" class="outline-2">
251 <h2 id="sec-1"><span class="section-number-2">1</span> !Project deprecated!</h2>
252 <div class="outline-text-2" id="text-1">
253 <p>
254 Current implementation does not support object oriented
255 programming. While working on Fifth I got lots of cool new ideas that
256 require reimplementation of everything.
257 </p>
258
259 <p>
260 Currently I try to implement those new ideas in the project called
261 <a href="http://www2.svjatoslav.eu/gitbrowse/sixth/doc/index.html">Sixth</a>
262 </p>
263
264 <p>
265 System is built many years ago when I was still using DOS as a primary
266 operating system.
267 </p>
268 </div>
269 </div>
270 <div id="outline-container-sec-2" class="outline-2">
271 <h2 id="sec-2"><span class="section-number-2">2</span> Introduction</h2>
272 <div class="outline-text-2" id="text-2">
273 <p>
274 Fifth is programming lanquage &amp; operating system, running on <i>virtual
275 CPU</i>, with custom instruction set. It is much like Charles Chunk
276 Moore's Forth, it also uses stack architecture, and many commands are
277 similar. Basically I got familiar with concepts of Forth, and being
278 inspired created my own system.
279 </p>
280
281
282
283 <p>
284 <i>Screenshots</i>
285 </p>
286
287 <p>
288 Read more about:
289 </p>
290 <ul class="org-ul">
291 <li><a href="emulator.html">Virtual CPU</a>
292 </li>
293 <li><a href="commands/index.html">Built-in commands</a>
294 </li>
295 <li><a href="modules/index.html">Additional commands, realized as loadable modules</a>
296 </li>
297 <li><a href="5TH_ET.txt">Example Fifth source file - text editor</a>
298 </li>
299 </ul>
300 </div>
301 </div>
302 <div id="outline-container-sec-3" class="outline-2">
303 <h2 id="sec-3"><span class="section-number-2">3</span> Installation</h2>
304 <div class="outline-text-2" id="text-3">
305 <p>
306 Just unpack all files, witout altering original directory structure,
307 somewhere in your hard disk. For example: C:\MISC\FIFTH\&#x2026;.  To run
308 fifth you need minimally just 2 files.  emulator itself ( EMULATOR.EXE
309 or EMULATOR.COM ), and virtual disk file ( DISK.RAW ).
310 </p>
311
312 <p>
313 Read more about <i>distribution directory layout</i>
314 </p>
315 </div>
316 </div>
317 <div id="outline-container-sec-4" class="outline-2">
318 <h2 id="sec-4"><span class="section-number-2">4</span> Software/Hardware/Human requirements</h2>
319 <div class="outline-text-2" id="text-4">
320 </div><div id="outline-container-sec-4-1" class="outline-3">
321 <h3 id="sec-4-1"><span class="section-number-3">4.1</span> Software:</h3>
322 <div class="outline-text-3" id="text-4-1">
323 <ul class="org-ul">
324 <li>MS-DOS 6.22, with HIMEM.SYS loaded.
325 </li>
326 <li>Mouse driver if you have a mouse.
327 </li>
328 <li>Does work only when CPU is in real mode.
329 </li>
330 <li>To recompile ASM sources I used FASM (Flat Assembler).
331 </li>
332 <li>I ran QBasic utilities on QB 4.5 .
333 </li>
334 <li>VESA support by BIOS, or external driver (UNIVBE).
335 </li>
336 </ul>
337 </div>
338 </div>
339 <div id="outline-container-sec-4-2" class="outline-3">
340 <h3 id="sec-4-2"><span class="section-number-3">4.2</span> Hardware:</h3>
341 <div class="outline-text-3" id="text-4-2">
342 <ul class="org-ul">
343 <li>Minimum CPU 386.
344 </li>
345 <li>64 KB free RAM below 640KB,
346 </li>
347 <li>2 MB of free XMS.
348 </li>
349 <li>VESA compatible video card.
350 </li>
351 </ul>
352 </div>
353 </div>
354 <div id="outline-container-sec-4-3" class="outline-3">
355 <h3 id="sec-4-3"><span class="section-number-3">4.3</span> Human:</h3>
356 <div class="outline-text-3" id="text-4-3">
357 <ul class="org-ul">
358 <li>Beginner level Forth knowledge is recommended.
359 </li>
360 <li>Lots of enthusiasm.
361 </li>
362 </ul>
363 </div>
364 </div>
365 </div>
366 <div id="outline-container-sec-5" class="outline-2">
367 <h2 id="sec-5"><span class="section-number-2">5</span> Numbers representation</h2>
368 <div class="outline-text-2" id="text-5">
369
370 <figure>
371 <p><a href="numbers.png"><img src="numbers.png" class="img-responsive" alt="numbers.png"></a>
372 </p>
373 </figure>
374
375 <p>
376 Because I can define everything, starting from CPU, why not try also
377 alternative and unique number representation ?
378 </p>
379
380 <p>
381 Fifth uses its hexdecimal number representation as primary. Numbers
382 shape is formed by dividing a square into four parts. And manipulating
383 their color (black or white).
384 </p>
385 </div>
386 </div>
387 <div id="outline-container-sec-6" class="outline-2">
388 <h2 id="sec-6"><span class="section-number-2">6</span> Disk file map, and it's data structures</h2>
389 <div class="outline-text-2" id="text-6">
390 <p>
391 Core and high-level boot code is stored outside of the filesystem to
392 allow easy access to it, at early booting time, when filesystem is not
393 yet initialized.
394 </p>
395 </div>
396 <div id="outline-container-sec-6-1" class="outline-3">
397 <h3 id="sec-6-1"><span class="section-number-3">6.1</span> disk allocation</h3>
398 <div class="outline-text-3" id="text-6-1">
399 <table class="table table-striped table-bordered table-hover table-condensed">
400
401
402 <colgroup>
403 <col  class="left">
404
405 <col  class="left">
406
407 <col  class="left">
408 </colgroup>
409 <thead>
410 <tr>
411 <th scope="col" class="text-left">offset</th>
412 <th scope="col" class="text-left">length</th>
413 <th scope="col" class="text-left">description</th>
414 </tr>
415 </thead>
416 <tbody>
417 <tr>
418 <td class="text-left">0</td>
419 <td class="text-left">~4 Kb</td>
420 <td class="text-left">Fifth core</td>
421 </tr>
422
423 <tr>
424 <td class="text-left">4 Kb</td>
425 <td class="text-left">~32Kb</td>
426 <td class="text-left">high-level boot code</td>
427 </tr>
428
429 <tr>
430 <td class="text-left">37 Kb</td>
431 <td class="text-left">~65Kb</td>
432 <td class="text-left">FAT</td>
433 </tr>
434
435 <tr>
436 <td class="text-left">101Kb</td>
437 <td class="text-left">~16MB</td>
438 <td class="text-left">filesystem data area</td>
439 </tr>
440 </tbody>
441 </table>
442 </div>
443 </div>
444 <div id="outline-container-sec-6-2" class="outline-3">
445 <h3 id="sec-6-2"><span class="section-number-3">6.2</span> FAT entry format:</h3>
446 <div class="outline-text-3" id="text-6-2">
447 <table class="table table-striped table-bordered table-hover table-condensed">
448
449
450 <colgroup>
451 <col  class="right">
452
453 <col  class="left">
454 </colgroup>
455 <thead>
456 <tr>
457 <th scope="col" class="text-right">code</th>
458 <th scope="col" class="text-left">meaning</th>
459 </tr>
460 </thead>
461 <tbody>
462 <tr>
463 <td class="text-right">-2</td>
464 <td class="text-left">last sector</td>
465 </tr>
466
467 <tr>
468 <td class="text-right">-1</td>
469 <td class="text-left">empty sector</td>
470 </tr>
471
472 <tr>
473 <td class="text-right">0 --</td>
474 <td class="text-left">.. pointer to next block</td>
475 </tr>
476 </tbody>
477 </table>
478 </div>
479 </div>
480 <div id="outline-container-sec-6-3" class="outline-3">
481 <h3 id="sec-6-3"><span class="section-number-3">6.3</span> file entry format</h3>
482 <div class="outline-text-3" id="text-6-3">
483 <table class="table table-striped table-bordered table-hover table-condensed">
484
485
486 <colgroup>
487 <col  class="right">
488
489 <col  class="right">
490
491 <col  class="left">
492 </colgroup>
493 <thead>
494 <tr>
495 <th scope="col" class="text-right">offset</th>
496 <th scope="col" class="text-right">length</th>
497 <th scope="col" class="text-left">description</th>
498 </tr>
499 </thead>
500 <tbody>
501 <tr>
502 <td class="text-right">0</td>
503 <td class="text-right">4</td>
504 <td class="text-left">extension</td>
505 </tr>
506
507 <tr>
508 <td class="text-right">4</td>
509 <td class="text-right">16</td>
510 <td class="text-left">name</td>
511 </tr>
512
513 <tr>
514 <td class="text-right">20</td>
515 <td class="text-right">4</td>
516 <td class="text-left">entry point</td>
517 </tr>
518
519 <tr>
520 <td class="text-right">24</td>
521 <td class="text-right">4</td>
522 <td class="text-left">size</td>
523 </tr>
524
525 <tr>
526 <td class="text-right">28</td>
527 <td class="text-right">4</td>
528 <td class="text-left">last modification time</td>
529 </tr>
530 </tbody>
531 </table>
532 </div>
533 </div>
534 </div>
535 <div id="outline-container-sec-7" class="outline-2">
536 <h2 id="sec-7"><span class="section-number-2">7</span> Core architecture</h2>
537 <div class="outline-text-2" id="text-7">
538 <p>
539 Fifth core is simply some amount of already compiled into machine code
540 and linked together modules (entries in other words). In compilation
541 process modules is compiled one by one and simply stored on top of
542 already existing and growing core. Separately from core is kept
543 dictionary, this is special list that contain names of compiled
544 modules, variables etc. and they locations in core. Constants use
545 dictionary space only. Random word can be removed from dictionary at
546 any time. Currently dictionary can contain at most 1000 entries.
547 </p>
548 </div>
549 <div id="outline-container-sec-7-1" class="outline-3">
550 <h3 id="sec-7-1"><span class="section-number-3">7.1</span> dictionary entry format</h3>
551 <div class="outline-text-3" id="text-7-1">
552 <table class="table table-striped table-bordered table-hover table-condensed">
553
554
555 <colgroup>
556 <col  class="right">
557
558 <col  class="right">
559
560 <col  class="left">
561 </colgroup>
562 <thead>
563 <tr>
564 <th scope="col" class="text-right">offset</th>
565 <th scope="col" class="text-right">length</th>
566 <th scope="col" class="text-left">description</th>
567 </tr>
568 </thead>
569 <tbody>
570 <tr>
571 <td class="text-right">0</td>
572 <td class="text-right">4</td>
573 <td class="text-left">0 &amp;lt; previous entry</td>
574 </tr>
575
576 <tr>
577 <td class="text-right">&#xa0;</td>
578 <td class="text-right">&#xa0;</td>
579 <td class="text-left">0 = last</td>
580 </tr>
581
582 <tr>
583 <td class="text-right">&#xa0;</td>
584 <td class="text-right">&#xa0;</td>
585 <td class="text-left">-1 = empty</td>
586 </tr>
587 </tbody>
588 <tbody>
589 <tr>
590 <td class="text-right">4</td>
591 <td class="text-right">15</td>
592 <td class="text-left">module name string</td>
593 </tr>
594 </tbody>
595 <tbody>
596 <tr>
597 <td class="text-right">19</td>
598 <td class="text-right">1</td>
599 <td class="text-left">entry type</td>
600 </tr>
601 </tbody>
602 <tbody>
603 <tr>
604 <td class="text-right">20</td>
605 <td class="text-right">4</td>
606 <td class="text-left">entry data</td>
607 </tr>
608 </tbody>
609 </table>
610
611 <p>
612 Core headers as linked list of module names make up something like
613 dictionary.  When some entry address is needed compiler can quickly
614 run through headers backwards and find needed entry.
615 </p>
616 </div>
617 </div>
618 <div id="outline-container-sec-7-2" class="outline-3">
619 <h3 id="sec-7-2"><span class="section-number-3">7.2</span> Possible module types</h3>
620 <div class="outline-text-3" id="text-7-2">
621 <table class="table table-striped table-bordered table-hover table-condensed">
622
623
624 <colgroup>
625 <col  class="right">
626
627 <col  class="left">
628
629 <col  class="left">
630 </colgroup>
631 <thead>
632 <tr>
633 <th scope="col" class="text-right">type</th>
634 <th scope="col" class="text-left">description</th>
635 <th scope="col" class="text-left">"execute" action</th>
636 </tr>
637 </thead>
638 <tbody>
639 <tr>
640 <td class="text-right">0</td>
641 <td class="text-left">data</td>
642 <td class="text-left">compile "num" instruction</td>
643 </tr>
644
645 <tr>
646 <td class="text-right">&#xa0;</td>
647 <td class="text-left">&#xa0;</td>
648 <td class="text-left">with address to module</td>
649 </tr>
650 </tbody>
651 <tbody>
652 <tr>
653 <td class="text-right">1</td>
654 <td class="text-left">submodule</td>
655 <td class="text-left">compile "call" instruction</td>
656 </tr>
657
658 <tr>
659 <td class="text-right">&#xa0;</td>
660 <td class="text-left">&#xa0;</td>
661 <td class="text-left">with address to module</td>
662 </tr>
663 </tbody>
664 <tbody>
665 <tr>
666 <td class="text-right">2</td>
667 <td class="text-left">imm. submodule</td>
668 <td class="text-left">immediately call to module</td>
669 </tr>
670 </tbody>
671 </table>
672 </div>
673 </div>
674 <div id="outline-container-sec-7-3" class="outline-3">
675 <h3 id="sec-7-3"><span class="section-number-3">7.3</span> Memory map: (average)</h3>
676 <div class="outline-text-3" id="text-7-3">
677 <table class="table table-striped table-bordered table-hover table-condensed">
678
679
680 <colgroup>
681 <col  class="right">
682
683 <col  class="left">
684
685 <col  class="left">
686 </colgroup>
687 <thead>
688 <tr>
689 <th scope="col" class="text-right">&lt;loc&gt;</th>
690 <th scope="col" class="text-left">&lt;size&gt;</th>
691 <th scope="col" class="text-left">&lt;desc&gt;</th>
692 </tr>
693 </thead>
694 <tbody>
695 <tr>
696 <td class="text-right">0</td>
697 <td class="text-left">~4096</td>
698 <td class="text-left">core</td>
699 </tr>
700
701 <tr>
702 <td class="text-right">1500000</td>
703 <td class="text-left">~32000</td>
704 <td class="text-left">highlevel Fifth boot code</td>
705 </tr>
706
707 <tr>
708 <td class="text-right">200000h</td>
709 <td class="text-left">&#xa0;</td>
710 <td class="text-left">core startup messages area</td>
711 </tr>
712
713 <tr>
714 <td class="text-right">5200000</td>
715 <td class="text-left">&#xa0;</td>
716 <td class="text-left">end of dynamic memory space</td>
717 </tr>
718 </tbody>
719 </table>
720 </div>
721 </div>
722 </div>
723 <div id="outline-container-sec-8" class="outline-2">
724 <h2 id="sec-8"><span class="section-number-2">8</span> Fifth source format</h2>
725 <div class="outline-text-2" id="text-8">
726 <p>
727 Fifth uses a different character table and codes than ASCII (still
728 almost similar). I call it FSCII (Fifth Standard Code for Information
729 Interchange) for example space character is not 32 but 255 instead.  I
730 plan to use mainly HEX numbers, and create new characters to represent
731 numeric values. So typical nemric characters "0123&#x2026;"  is treated
732 like ordinary letters.
733 </p>
734 </div>
735 <div id="outline-container-sec-8-1" class="outline-3">
736 <h3 id="sec-8-1"><span class="section-number-3">8.1</span> FSCII:</h3>
737 <div class="outline-text-3" id="text-8-1">
738 <table class="table table-striped table-bordered table-hover table-condensed">
739
740
741 <colgroup>
742 <col  class="right">
743
744 <col  class="left">
745
746 <col  class="left">
747 </colgroup>
748 <thead>
749 <tr>
750 <th scope="col" class="text-right">DEC</th>
751 <th scope="col" class="text-left">HEX</th>
752 <th scope="col" class="text-left">function</th>
753 </tr>
754 </thead>
755 <tbody>
756 <tr>
757 <td class="text-right">0 - 15</td>
758 <td class="text-left">0 - F</td>
759 <td class="text-left">HEX numbers</td>
760 </tr>
761
762 <tr>
763 <td class="text-right">252</td>
764 <td class="text-left">FC</td>
765 <td class="text-left">backspace</td>
766 </tr>
767
768 <tr>
769 <td class="text-right">253</td>
770 <td class="text-left">FD</td>
771 <td class="text-left">tabulator (TAB)</td>
772 </tr>
773
774 <tr>
775 <td class="text-right">254</td>
776 <td class="text-left">FE</td>
777 <td class="text-left">carriage return (CR)</td>
778 </tr>
779
780 <tr>
781 <td class="text-right">255</td>
782 <td class="text-left">FF</td>
783 <td class="text-left">space</td>
784 </tr>
785
786 <tr>
787 <td class="text-right">else</td>
788 <td class="text-left">&#xa0;</td>
789 <td class="text-left">ordinary characters, same as in ASCII.</td>
790 </tr>
791 </tbody>
792 </table>
793 </div>
794 </div>
795 </div>
796 </div><div class="col-md-3"><nav id="table-of-contents">
797 <div id="text-table-of-contents" class="bs-docs-sidebar">
798 <ul class="nav">
799 <li><a href="#sec-1">1. !Project deprecated!</a></li>
800 <li><a href="#sec-2">2. Introduction</a></li>
801 <li><a href="#sec-3">3. Installation</a></li>
802 <li><a href="#sec-4">4. Software/Hardware/Human requirements</a>
803 <ul class="nav">
804 <li><a href="#sec-4-1">4.1. Software:</a></li>
805 <li><a href="#sec-4-2">4.2. Hardware:</a></li>
806 <li><a href="#sec-4-3">4.3. Human:</a></li>
807 </ul>
808 </li>
809 <li><a href="#sec-5">5. Numbers representation</a></li>
810 <li><a href="#sec-6">6. Disk file map, and it's data structures</a>
811 <ul class="nav">
812 <li><a href="#sec-6-1">6.1. disk allocation</a></li>
813 <li><a href="#sec-6-2">6.2. FAT entry format:</a></li>
814 <li><a href="#sec-6-3">6.3. file entry format</a></li>
815 </ul>
816 </li>
817 <li><a href="#sec-7">7. Core architecture</a>
818 <ul class="nav">
819 <li><a href="#sec-7-1">7.1. dictionary entry format</a></li>
820 <li><a href="#sec-7-2">7.2. Possible module types</a></li>
821 <li><a href="#sec-7-3">7.3. Memory map: (average)</a></li>
822 </ul>
823 </li>
824 <li><a href="#sec-8">8. Fifth source format</a>
825 <ul class="nav">
826 <li><a href="#sec-8-1">8.1. FSCII:</a></li>
827 </ul>
828 </li>
829 </ul>
830 </div>
831 </nav>
832 </div></div></div>
833 <footer id="postamble" class="">
834 <div><p class="author">Author: Svjatoslav Agejenko</p>
835 <p class="date">Created: 2017-01-21 Sat 22:20</p>
836 <p class="creator"><a href="http://www.gnu.org/software/emacs/">Emacs</a> 24.4.1 (<a href="http://orgmode.org">Org-mode</a> 8.2.10)</p>
837 </div>
838 </footer>
839 </body>
840 </html>