├── ALU-USA-statement.pdf ├── Caldera-license.pdf ├── LICENSE ├── README.md ├── adm.s ├── ald.s ├── apr.s ├── as.s ├── bc.s ├── bi.s ├── bl.s ├── cas.s ├── cat.s ├── check.s ├── chmod.s ├── chown.s ├── chrm.s ├── cp.s ├── db.s ├── dmabs.s ├── ds.s ├── dskio.s ├── dskres.s ├── dsksav.s ├── dsw.s ├── ed1.s ├── ed2.s ├── ind.b ├── init.s ├── lcase.b ├── maksys.s ├── s1.s ├── s2.s ├── s3.s ├── s4.s ├── s5.s ├── s6.s ├── s7.s ├── s8.s ├── s9.s ├── scope.v ├── sop.s ├── sysmap └── trysys.s /ALU-USA-statement.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dspinellis/unix-history-repo/16fdb215eeab60c2e7b8d624b22bdc9c0422484f/ALU-USA-statement.pdf -------------------------------------------------------------------------------- /Caldera-license.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dspinellis/unix-history-repo/16fdb215eeab60c2e7b8d624b22bdc9c0422484f/Caldera-license.pdf -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | UNIX is a registered trademark in the United States and other countries, 2 | licensed exclusively through X/Open Company, Ltd. 3 | 4 | Caldera owns the copyright on these versions of UNIX (as well as others): 5 | 1st, 2nd, 3rd, 4th, 5th, 6th & 7th Editions, PWB/UNIX, Mini UNIX, and 32V. 6 | See Caldera-license.pdf for their license conditions for these systems. 7 | 8 | Any portions of 1BSD, 2BSD, 2.xBSD, 3BSD and 4.xBSD which are substantially 9 | derived from the Caldera UNIX systems above are also copyright Caldera. 10 | 11 | Depending on where the software was developed, those portions of 1BSD, 2BSD, 12 | 2.xBSD, 3BSD and 4.xBSD which are not substantially derived from the Caldera 13 | UNIX systems above are either copyright the Regents of the University of 14 | California, or by the authors of the software. Please read the individual 15 | software files to determine ownership and copyright status. 16 | 17 | All versions of Ultrix-11, and the V7M version of UNIX, are copyright Compaq. 18 | 19 | Venix versions 1 and 2 are copyright by VenturCom. 20 | 21 | Douglas Comer and Prentice-Hall own the copyright on the Xinu operating system. 22 | 23 | The AUSAM modifications to 6th Edition UNIX are copyright the University 24 | of New South Wales. 25 | 26 | The port of 6th Edition UNIX to the Interdata 7/32 is copyright the 27 | University of Wollongong, Australia. 28 | 29 | The organisation of the Unix Archive, the documents describing this archive's 30 | contents & organisation, and the HTML files in the directories TUHS_Html & 31 | PUPS_Html are copyright Warren Toomey. 32 | 33 | The code in the original PDP-7 Unix scans is copyright by Novell, 34 | which owns the rights to the Unix source code. 35 | 36 | Statement Regarding Research Unix Editions 8, 9, and 10 37 | Alcatel-Lucent USA Inc. (“ALU-USA”), on behalf of itself and Nokia 38 | Bell Laboratories agrees, to the extent of its ability to do so, that it 39 | will not assert its copyright rights with respect to any non-commercial 40 | copying, distribution, performance, display or creation of derivative 41 | works of Research Unix®1 Editions 8, 9, and 10. The foregoing does not 42 | (i) transfer ownership of, or relinquish any, intellectual property rights 43 | (including patent rights) of Nokia Corporation, ALU-USA or any of their 44 | affiliates, (ii) grant a license to any patent, patent application, 45 | or trademark of Nokia Corporation, ALU-USA. or any of their affiliates, 46 | (iii) grant any third-party rights or licenses, or (iv) grant any rights 47 | for commercial purposes. Neither ALU-USA. nor Nokia Bell Laboratories will 48 | furnish or provided support for Research Unix Editions 8, 9, and 10, and 49 | make no warranties or representations hereunder, including but not limited 50 | to any warranty or representation that Research Unix Editions 8, 9, and 51 | 10 does not infringe any third party intellectual property rights or that 52 | Research Unix Editions 8, 9, and 10 is fit for any particular purpose. 53 | 54 | The BSD snaphshots and SCCS commits are distributed with the following license. 55 | 56 | ----------------------------------------- 57 | All of the documentation and software included in the 4.4BSD and 4.4BSD-Lite 58 | Releases is copyrighted by The Regents of the University of California. 59 | 60 | Copyright 1979, 1980, 1983, 1986, 1988, 1989, 1991, 1992, 1993, 1994 61 | The Regents of the University of California. All rights reserved. 62 | 63 | Redistribution and use in source and binary forms, with or without 64 | modification, are permitted provided that the following conditions 65 | are met: 66 | 1. Redistributions of source code must retain the above copyright 67 | notice, this list of conditions and the following disclaimer. 68 | 2. Redistributions in binary form must reproduce the above copyright 69 | notice, this list of conditions and the following disclaimer in the 70 | documentation and/or other materials provided with the distribution. 71 | 3. All advertising materials mentioning features or use of this software 72 | must display the following acknowledgement: 73 | This product includes software developed by the University of 74 | California, Berkeley and its contributors. 75 | 4. Neither the name of the University nor the names of its contributors 76 | may be used to endorse or promote products derived from this software 77 | without specific prior written permission. 78 | 79 | THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND 80 | ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 81 | IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 82 | ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE 83 | FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 84 | DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 85 | OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 86 | HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 87 | LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 88 | OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 89 | SUCH DAMAGE. 90 | 91 | The Institute of Electrical and Electronics Engineers and the American 92 | National Standards Committee X3, on Information Processing Systems have 93 | given us permission to reprint portions of their documentation. 94 | 95 | In the following statement, the phrase ``this text'' refers to portions 96 | of the system documentation. 97 | 98 | Portions of this text are reprinted and reproduced in electronic form in 99 | the second BSD Networking Software Release, from IEEE Std 1003.1-1988, IEEE 100 | Standard Portable Operating System Interface for Computer Environments 101 | (POSIX), copyright C 1988 by the Institute of Electrical and Electronics 102 | Engineers, Inc. In the event of any discrepancy between these versions 103 | and the original IEEE Standard, the original IEEE Standard is the referee 104 | document. 105 | 106 | In the following statement, the phrase ``This material'' refers to portions 107 | of the system documentation. 108 | 109 | This material is reproduced with permission from American National 110 | Standards Committee X3, on Information Processing Systems. Computer and 111 | Business Equipment Manufacturers Association (CBEMA), 311 First St., NW, 112 | Suite 500, Washington, DC 20001-2178. The developmental work of 113 | Programming Language C was completed by the X3J11 Technical Committee. 114 | 115 | The views and conclusions contained in the software and documentation are 116 | those of the authors and should not be interpreted as representing official 117 | policies, either expressed or implied, of the Regents of the University 118 | of California. 119 | ----------------------------------------- 120 | 121 | 386BSD is distributed under the following license. 122 | ----------------------------------------- 123 | Copyright (c) 1989, 1990, 1991, 1992 William F. Jolitz, TeleMuse 124 | All rights reserved. 125 | 126 | Redistribution and use in source and binary forms, with or without 127 | modification, are permitted provided that the following conditions 128 | are met: 129 | 1. Redistributions of source code must retain the above copyright 130 | notice, this list of conditions and the following disclaimer. 131 | 2. Redistributions in binary form must reproduce the above copyright 132 | notice, this list of conditions and the following disclaimer in the 133 | documentation and/or other materials provided with the distribution. 134 | 3. All advertising materials mentioning features or use of this software 135 | must display the following acknowledgement: 136 | This software is a component of "386BSD" developed by 137 | William F. Jolitz, TeleMuse. 138 | 4. Neither the name of the developer nor the name "386BSD" 139 | may be used to endorse or promote products derived from this software 140 | without specific prior written permission. 141 | 142 | 386BSD WAS DEVELOPED BY WILLIAM F. JOLITZ. 143 | 386BSD IS INTENDED FOR RESEARCH AND EDUCATIONAL PURPOSES. 144 | THIS SOFTWARE SHOULD NOT BE CONSIDERED TO BE A COMMERCIAL PRODUCT. 145 | THE DEVELOPER URGES THAT USERS WHO REQUIRE A COMMERCIAL PRODUCT 146 | NOT MAKE USE OF THIS WORK. 147 | 148 | FOR USERS WHO WISH TO UNDERSTAND THE 386BSD SYSTEM DEVELOPED 149 | BY WILLIAM F. JOLITZ, WE RECOMMEND THE USER STUDY WRITTEN 150 | REFERENCES SUCH AS THE "PORTING UNIX TO THE 386" SERIES 151 | (BEGINNING JANUARY 1991 "DR. DOBBS JOURNAL", USA AND BEGINNING 152 | JUNE 1991 "UNIX MAGAZIN", GERMANY) BY WILLIAM F. JOLITZ AND 153 | LYNNE GREER JOLITZ, AS WELL AS OTHER BOOKS ON UNIX AND THE 154 | ON-LINE 386BSD USER MANUAL BEFORE USE. A BOOK DISCUSSING THE INTERNALS 155 | OF 386BSD ENTITLED "386BSD FROM THE INSIDE OUT" WILL BE AVAILABLE LATE 1992. 156 | 157 | THIS SOFTWARE IS PROVIDED BY THE DEVELOPER ``AS IS'' AND 158 | ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 159 | IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 160 | ARE DISCLAIMED. IN NO EVENT SHALL THE DEVELOPER BE LIABLE 161 | FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 162 | DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 163 | OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 164 | HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 165 | LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 166 | OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 167 | SUCH DAMAGE. 168 | ----------------------------------------- 169 | 170 | FreeBSD is distributed under the following license. 171 | ----------------------------------------- 172 | # $FreeBSD$ 173 | # @(#)COPYRIGHT 8.2 (Berkeley) 3/21/94 174 | 175 | The compilation of software known as FreeBSD is distributed under the 176 | following terms: 177 | 178 | Copyright (c) 1992-2014 The FreeBSD Project. All rights reserved. 179 | 180 | Redistribution and use in source and binary forms, with or without 181 | modification, are permitted provided that the following conditions 182 | are met: 183 | 1. Redistributions of source code must retain the above copyright 184 | notice, this list of conditions and the following disclaimer. 185 | 2. Redistributions in binary form must reproduce the above copyright 186 | notice, this list of conditions and the following disclaimer in the 187 | documentation and/or other materials provided with the distribution. 188 | 189 | THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND 190 | ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 191 | IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 192 | ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE 193 | FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 194 | DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 195 | OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 196 | HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 197 | LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 198 | OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 199 | SUCH DAMAGE. 200 | 201 | The 4.4BSD and 4.4BSD-Lite software is distributed under the following 202 | terms: 203 | 204 | All of the documentation and software included in the 4.4BSD and 4.4BSD-Lite 205 | Releases is copyrighted by The Regents of the University of California. 206 | 207 | Copyright 1979, 1980, 1983, 1986, 1988, 1989, 1991, 1992, 1993, 1994 208 | The Regents of the University of California. All rights reserved. 209 | 210 | Redistribution and use in source and binary forms, with or without 211 | modification, are permitted provided that the following conditions 212 | are met: 213 | 1. Redistributions of source code must retain the above copyright 214 | notice, this list of conditions and the following disclaimer. 215 | 2. Redistributions in binary form must reproduce the above copyright 216 | notice, this list of conditions and the following disclaimer in the 217 | documentation and/or other materials provided with the distribution. 218 | 3. All advertising materials mentioning features or use of this software 219 | must display the following acknowledgement: 220 | This product includes software developed by the University of 221 | California, Berkeley and its contributors. 222 | 4. Neither the name of the University nor the names of its contributors 223 | may be used to endorse or promote products derived from this software 224 | without specific prior written permission. 225 | 226 | THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND 227 | ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 228 | IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 229 | ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE 230 | FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 231 | DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 232 | OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 233 | HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 234 | LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 235 | OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 236 | SUCH DAMAGE. 237 | 238 | The Institute of Electrical and Electronics Engineers and the American 239 | National Standards Committee X3, on Information Processing Systems have 240 | given us permission to reprint portions of their documentation. 241 | 242 | In the following statement, the phrase ``this text'' refers to portions 243 | of the system documentation. 244 | 245 | Portions of this text are reprinted and reproduced in electronic form in 246 | the second BSD Networking Software Release, from IEEE Std 1003.1-1988, IEEE 247 | Standard Portable Operating System Interface for Computer Environments 248 | (POSIX), copyright C 1988 by the Institute of Electrical and Electronics 249 | Engineers, Inc. In the event of any discrepancy between these versions 250 | and the original IEEE Standard, the original IEEE Standard is the referee 251 | document. 252 | 253 | In the following statement, the phrase ``This material'' refers to portions 254 | of the system documentation. 255 | 256 | This material is reproduced with permission from American National 257 | Standards Committee X3, on Information Processing Systems. Computer and 258 | Business Equipment Manufacturers Association (CBEMA), 311 First St., NW, 259 | Suite 500, Washington, DC 20001-2178. The developmental work of 260 | Programming Language C was completed by the X3J11 Technical Committee. 261 | 262 | The views and conclusions contained in the software and documentation are 263 | those of the authors and should not be interpreted as representing official 264 | policies, either expressed or implied, of the Regents of the University 265 | of California. 266 | 267 | 268 | NOTE: The copyright of UC Berkeley's Berkeley Software Distribution ("BSD") 269 | source has been updated. The copyright addendum may be found at 270 | ftp://ftp.cs.berkeley.edu/pub/4bsd/README.Impt.License.Change and is 271 | included below. 272 | 273 | July 22, 1999 274 | 275 | To All Licensees, Distributors of Any Version of BSD: 276 | 277 | As you know, certain of the Berkeley Software Distribution ("BSD") source 278 | code files require that further distributions of products containing all or 279 | portions of the software, acknowledge within their advertising materials 280 | that such products contain software developed by UC Berkeley and its 281 | contributors. 282 | 283 | Specifically, the provision reads: 284 | 285 | " * 3. All advertising materials mentioning features or use of this software 286 | * must display the following acknowledgement: 287 | * This product includes software developed by the University of 288 | * California, Berkeley and its contributors." 289 | 290 | Effective immediately, licensees and distributors are no longer required to 291 | include the acknowledgement within advertising materials. Accordingly, the 292 | foregoing paragraph of those BSD Unix files containing it is hereby deleted 293 | in its entirety. 294 | 295 | William Hoskins 296 | Director, Office of Technology Licensing 297 | University of California, Berkeley 298 | ----------------------------------------- 299 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Unix History Repository 2 | 3 | 4 | The history and evolution of the Unix operating system is made available 5 | as a revision management repository, covering the period from its 6 | inception in 1970 as a 2.5 thousand line kernel and 26 commands, 7 | to 2018 as a widely-used 30 million line system. The 1.5GB repository 8 | contains about half a million commits and more than two thousand merges. 9 | The repository employs Git system for its storage and is hosted on GitHub. 10 | It has been created by synthesizing with custom software 24 snapshots of 11 | systems developed at Bell Labs, the University of California at Berkeley, 12 | and the 386BSD team, two legacy repositories, and the modern repository 13 | of the open source FreeBSD system. 14 | In total, about one thousand individual contributors are identified, 15 | the early ones through primary research. 16 | The data set can be used for empirical research in software engineering, 17 | information systems, and software archaeology. 18 | 19 | You can read more details about the contents, creation, and uses of this 20 | repository through [this link](http://www.dmst.aueb.gr/dds/pubs/jrnl/2016-EMPSE-unix-history/html/unix-history.html). 21 | 22 | Two repositories are associated with the project: 23 | * [unix-history-repo](https://github.com/dspinellis/unix-history-repo) is 24 | a repository representing a 25 | reconstructed version of the Unix history, based on the currently 26 | available data. This repository will be often automatically regenerated from 27 | scratch, so this is not a place to make contributions. 28 | To ensure replicability its users are encouraged to fork it or archive it. 29 | * [unix-history-make](https://github.com/dspinellis/unix-history-make) is 30 | a repository containing code and metadata used to build the above repository. 31 | Contributions to this repository are welcomed. 32 | 33 | ## Project status 34 | The project has achieved its major goal with the establishment of a continuous timeline from 1970 until today. The repository contains: 35 | 36 | * snapshots of PDP-7, V1, V2, V3, V4, V5, V6, and V7 Research Edition, 37 | * Unix/32V, 38 | * all available BSD releases, 39 | * the CSRG SCCS history, 40 | * two releases of 386BSD, 41 | * the 386BSD patchkit, 42 | * the FreeBSD 1.0 to 1.1.5 CVS history, 43 | * an import of the FreeBSD repository starting from its initial imports that led to FreeBSD 2.0, and 44 | * the current FreeBSD repository. 45 | 46 | The files appear to be added in the repository in chronological order according to their modification time, and large parts of the source code have been attributed to their actual authors. Commands like `git blame` and `git log` produce the expected results. 47 | 48 | The repository contains a number of two-way merges. 49 | 50 | * 3 BSD is merged from Unix/32V and Research Edition 6 51 | * Various BSD releases are merged from the development branch and a time point of BSD-SCCS 52 | * FreeBSD 1.0 is merged from Net/2 BSD and 386BSD-0.1-patchkit 53 | * FreeBSD 2.0 is merged from BSD 4.4/Lite1 and FreeBSD 1.1.5 54 | 55 | Blame is apportioned appropriately. 56 | 57 | ## Tags and Branches 58 | The following tags or branch names mark specific releases, listed in rough chronological order. 59 | * Epoch 60 | * Research-PDP7 61 | * Research-V1–6 62 | * BSD-1 63 | * BSD-2 64 | * Research-V7 65 | * Bell-32V 66 | * BSD-3, 4, 4\_1\_snap, 4\_1c\_2, 4\_2, 4\_3, 4\_3\_Reno, 4\_3\_Net\_1, 4\_3\_Tahoe, 4\_3\_Net\_2, 4\_4, 4\_4\_Lite1, 4\_4\_Lite2 67 | SCCS-END, 68 | * 386BSD-0.0, 0.1, patchkit 69 | * FreeBSD-release/1.0, 1.1, 1.1.5 70 | * FreeBSD-release/2.0 2.0.5, 2.1.0, 2.1.5, 2.1.6, 2.1.6.1, 2.1.7, 2.2.0, 2.2.1, 2.2.2, 2.2.5, 2.2.6, 2.2.7, 2.2.8 71 | * FreeBSD-release/3.0.0, 3.1.0, 3.2.0, 3.3.0, 3.4.0, 3.5.0 72 | * FreeBSD-release/4.0.0 4.1.0, 4.1.1, 4.2.0, 4.3.0, 4.4.0, 4.5.0, 4.6.0, 4.6.1, 4.6.2, 4.7.0, 4.8.0, 4.9.0, 4.10.0, 4.11.0 73 | * FreeBSD-release/5.0.0 5.1.0, 5.2.0, 5.2.1, 5.3.0, 5.4.0, 5.5.0 74 | * FreeBSD-release/6.0.0, 6.1.0, 6.2.0, 6.3.0, 6.4.0 75 | * FreeBSD-release/7.0.0, 7.1.0, 7.2.0, 7.3.0, 7.4.0 76 | * FreeBSD-release/8.0.0, 8.1.0, 8.2.0, 8.3.0, 8.4.0 77 | * FreeBSD-release/9.0.0, 9.1.0, 9.2.0, 9.3.0 78 | * FreeBSD-release/10.0.0, 10.1.0, 10.2.0, 10.3.0, 10.4.0 79 | * FreeBSD-release/11.0.0, 11.0.1, 11.1.0, 11.2.0, 11.3.0, 11.4.0 80 | * FreeBSD-release/12.0.0, 12.1.0 81 | 82 | A detailed description of the major tags is available in the 83 | file [releases.md](https://github.com/dspinellis/unix-history-make/blob/master/releases.md). 84 | 85 | More tags and branches are available. 86 | * The `-Snapshot-Development` branches denote commits that have been synthesized from a time-ordered sequence of a snapshot's files. 87 | * The `-VCS-Development` tags denote the point along an imported version control history branch where a particular release occurred. 88 | 89 | ## Cool things you can do 90 | 91 | The easiest thing you can do is to 92 | watch the repository's [Gource Visualization](https://youtu.be/S7JB0mhrGCQ). 93 | 94 | If you have a broadband network connection and about 1.5GB of free disk space, 95 | you can download the repository and run Git commands that go back decades. 96 | Run 97 | ```sh 98 | git clone https://github.com/dspinellis/unix-history-repo 99 | git checkout BSD-Release 100 | ``` 101 | to get a local copy of the Unix history repository. 102 | ### View log across releases 103 | Running 104 | ```sh 105 | git log --reverse --date-order 106 | ``` 107 | will give you commits such as the following 108 | 109 | ``` 110 | commit 64d7600ea5210a9125bd1a06e5d184ef7547d23d 111 | Author: Ken Thompson 112 | Date: Tue Jun 20 05:00:00 1972 -0500 113 | 114 | Research V1 development 115 | Work on file u5.s 116 | 117 | Co-Authored-By: Dennis Ritchie 118 | Synthesized-from: v1/sys 119 | [...] 120 | commit 4030f8318890a026e065bc8926cebefb71e9d353 121 | Author: Ken Thompson 122 | Date: Thu Aug 30 19:30:25 1973 -0500 123 | 124 | Research V3 development 125 | Work on file sys/ken/slp.c 126 | 127 | Synthesized-from: v3 128 | [...] 129 | commit c4999ec655319a01e84d9460d84df824006f9e2d 130 | Author: Dennis Ritchie 131 | Date: Thu Aug 30 19:33:01 1973 -0500 132 | 133 | Research V3 development 134 | Work on file sys/dmr/kl.c 135 | 136 | Synthesized-from: v3 137 | [...] 138 | commit 355c543c6840fa5f37d8daf2e2eaa735ea6daa4a 139 | Author: Brian W. Kernighan 140 | Date: Tue May 13 19:43:47 1975 -0500 141 | 142 | Research V6 development 143 | Work on file usr/source/rat/r.g 144 | 145 | Synthesized-from: v6 146 | [...] 147 | commit 0ce027f7fb2cf19b7e92d74d3f09eb02e8fea50e 148 | Author: S. R. Bourne 149 | Date: Fri Jan 12 02:17:45 1979 -0500 150 | 151 | Research V7 development 152 | Work on file usr/src/cmd/sh/blok.c 153 | 154 | Synthesized-from: v7 155 | [...] 156 | Author: Eric Schmidt 157 | Date: Sat Jan 5 22:49:18 1980 -0800 158 | 159 | BSD 3 development 160 | 161 | Work on file usr/src/cmd/net/sub.c 162 | ``` 163 | ### View changes to a specific file 164 | Run 165 | ```sh 166 | git checkout Research-Release 167 | git log --follow --simplify-merges usr/src/cmd/c/c00.c 168 | ``` 169 | to see dates on which the C compiler was modified. 170 | ### Annotate lines in a specific file by their version 171 | Run 172 | ``` 173 | git blame -C -C usr/sys/sys/pipe.c 174 | ``` 175 | to see how the Unix pipe functionality evolved over the years. 176 | ``` 177 | 3cc1108b usr/sys/ken/pipe.c (Ken Thompson 1974-11-26 18:13:21 -0500 53) rf->f_flag = FREAD|FPIPE; 178 | 3cc1108b usr/sys/ken/pipe.c (Ken Thompson 1974-11-26 18:13:21 -0500 54) rf->f_inode = ip; 179 | 3cc1108b usr/sys/ken/pipe.c (Ken Thompson 1974-11-26 18:13:21 -0500 55) ip->i_count = 2; 180 | [...] 181 | 1f183be2 usr/sys/sys/pipe.c (Ken Thompson 1979-01-10 15:19:35 -0500 122) register struct inode *ip; 182 | 1f183be2 usr/sys/sys/pipe.c (Ken Thompson 1979-01-10 15:19:35 -0500 123) 183 | 1f183be2 usr/sys/sys/pipe.c (Ken Thompson 1979-01-10 15:19:35 -0500 124) ip = fp->f_inode; 184 | 1f183be2 usr/sys/sys/pipe.c (Ken Thompson 1979-01-10 15:19:35 -0500 125) c = u.u_count; 185 | 1f183be2 usr/sys/sys/pipe.c (Ken Thompson 1979-01-10 15:19:35 -0500 126) 186 | 1f183be2 usr/sys/sys/pipe.c (Ken Thompson 1979-01-10 15:19:35 -0500 127) loop: 187 | 1f183be2 usr/sys/sys/pipe.c (Ken Thompson 1979-01-10 15:19:35 -0500 128) 188 | 1f183be2 usr/sys/sys/pipe.c (Ken Thompson 1979-01-10 15:19:35 -0500 129) /* 189 | 9a9f6b22 usr/src/sys/sys/pipe.c (Bill Joy 1980-01-05 05:51:18 -0800 130) * If error or all done, return. 190 | 9a9f6b22 usr/src/sys/sys/pipe.c (Bill Joy 1980-01-05 05:51:18 -0800 131) */ 191 | 9a9f6b22 usr/src/sys/sys/pipe.c (Bill Joy 1980-01-05 05:51:18 -0800 132) 192 | 9a9f6b22 usr/src/sys/sys/pipe.c (Bill Joy 1980-01-05 05:51:18 -0800 133) if (u.u_error) 193 | 9a9f6b22 usr/src/sys/sys/pipe.c (Bill Joy 1980-01-05 05:51:18 -0800 134) return; 194 | 6d632e85 usr/sys/ken/pipe.c (Ken Thompson 1975-07-17 10:33:37 -0500 135) plock(ip); 195 | 6d632e85 usr/sys/ken/pipe.c (Ken Thompson 1975-07-17 10:33:37 -0500 136) if(c == 0) { 196 | 6d632e85 usr/sys/ken/pipe.c (Ken Thompson 1975-07-17 10:33:37 -0500 137) prele(ip); 197 | 6d632e85 usr/sys/ken/pipe.c (Ken Thompson 1975-07-17 10:33:37 -0500 138) u.u_count = 0; 198 | 6d632e85 usr/sys/ken/pipe.c (Ken Thompson 1975-07-17 10:33:37 -0500 139) return; 199 | 6d632e85 usr/sys/ken/pipe.c (Ken Thompson 1975-07-17 10:33:37 -0500 140) } 200 | ``` 201 | ## How you can help 202 | You can help if you were there at the time, or if you can locate a 203 | source that contains information that is currently missing. 204 | * If your current GitHub account is not linked to your past contributions, 205 | (you can search them through 206 | [this page](http://www.spinellis.gr/cgi-bin/namegrep.pl)), 207 | associate your past email with your current account through your 208 | [GitHub account settings](https://github.com/settings/emails). 209 | (Contact me for instructions on how to add email addresses to which you no 210 | longer have access.) 211 | * Look for errors and omissions in the 212 | [files that map file paths to authors](https://github.com/dspinellis/unix-history-make/blob/master/src/author-path). 213 | * Look for parts of the system that have not yet been attributed 214 | [in these files](https://github.com/dspinellis/unix-history-make/blob/master/src/unmatched) 215 | and propose suitable attributions. 216 | Keep in mind that attributions for parts that were developed in one place 217 | and modified elsewhere (e.g. developed at Bell Labs and modified at Berkeley) 218 | should be for the person who did the modification, not the original author. 219 | * Look for authors whose identifier starts with ```x-``` in the 220 | author id to name map files for 221 | [Bell Labs](https://github.com/dspinellis/unix-history-make/blob/master/src/bell.au), 222 | and 223 | [Berkeley](https://github.com/dspinellis/unix-history-make/blob/master/src/berkeley.au), 224 | and provide or confirm their actual login identifier. 225 | (The one used is a guess.) 226 | * Contribute a path regular expression to contributor map file 227 | (see [v7.map](https://github.com/dspinellis/unix-history-make/blob/master/src/author-path/v7)) for 228 | [4.2BSD](http://www.tuhs.org/Archive/4BSD/Distributions/4.2BSD/), 229 | [4.3BSD](http://www.tuhs.org/Archive/4BSD/Distributions/4.3BSD/), 230 | [4.3BSD-Reno](http://www.tuhs.org/Archive/4BSD/Distributions/4.3BSD-Reno/), 231 | [4.3BSD-Tahoe](http://www.tuhs.org/Archive/4BSD/Distributions/4.3BSD-Tahoe/), 232 | [4.3BSD-Alpha](http://www.tuhs.org/Archive/4BSD/Distributions/4.3BSD-Alpha/), and 233 | [Net2](http://www.tuhs.org/Archive/4BSD/Distributions/Net2/). 234 | * Import further branches, such as 2BSD, NetBSD, OpenBSD, and _Plan 9 from Bell Labs_. 235 | 236 | ## Re-creating the historical repository from scratch 237 | The -make repository is provided to share and document the creation process, rather than as a bullet-proof way to get consistent and repeatable results. For instance, importing the snapshots on a system that is case-insensitive (NTFS, HFS Plus with default settings) will result in a few files getting lost. 238 | 239 | ### Prerequisites 240 | * Git 241 | * Perl 242 | * The Perl modules `VCS::SCCS` and `Git::FastExport` 243 | (Install with `sudo cpanm VCS::SCCS Git::FastExport`.) 244 | * If compiling patch under GNU/Linux and library `libbsd` 245 | (e.g. the `libbsd-dev` package). 246 | * Sudo (and authorization to use it to mount ISO images) 247 | 248 | ### Repository creation 249 | The -repo repository can be created with the following commands. 250 | ```sh 251 | make 252 | ./import.sh 253 | ``` 254 | 255 | ## Adding a single source 256 | If you want to add a new source without running the full import process, 257 | you can do the following. 258 | 259 | * Prepare the source's maps and data 260 | * `cd` to the repo directory 261 | * Checkout the repo at the point where the new source will branch out 262 | * Run a Perl command such as the following. 263 | 264 | ``` 265 | perl ../import-dir.pl [-v] -m Research-V7 -c ../author-path/Bell-32V \ 266 | -n ../bell.au -r Research-V7 -i ../ignore/Bell-32V \ 267 | $ARCHIVE/32v Bell 32V -0500 | gfi 268 | ``` 269 | 270 | ## Further reading 271 | - [Documented Unix facilities timeline](https://dspinellis.github.io/unix-history-man/index.html) 272 | - [edX open online course on Unix tools for data, software, and production engineering](https://www.spinellis.gr/unix/?uhr) 273 | - Scientific publications 274 | - Diomidis Spinellis. A repository of Unix history and evolution. *Empirical Software Engineering*, 2017. doi:10.1007/s10664-016-9445-5. 275 | [HTML](http://www.dmst.aueb.gr/dds/pubs/jrnl/2016-EMPSE-unix-history/html/unix-history.html), [PDF](http://www.dmst.aueb.gr/dds/pubs/jrnl/2016-EMPSE-unix-history/html/unix-history.pdf) 276 | - Diomidis Spinellis. A repository with 44 years of Unix evolution. In *MSR '15: Proceedings of the 12th Working Conference on Mining Software Repositories*, pages 13-16. IEEE, 2015. Best Data Showcase Award. [PDF](http://www.dmst.aueb.gr/dds/pubs/conf/2015-MSR-Unix-History/html/Spi15c.pdf), [HTML](http://www.dmst.aueb.gr/dds/pubs/conf/2015-MSR-Unix-History/html/Spi15c.html), [poster](http://www.dmst.aueb.gr/dds/pubs/conf/2015-MSR-Unix-History/html/poster.pdf). 277 | - Diomidis Spinellis and Paris Avgeriou. Evolution of the Unix system architecture: An exploratory case study. *IEEE Transactions on Software Engineering*, 2020. [http://dx.doi.org/10.1109/TSE.2019.2892149](https://dx.doi.org/10.1109/TSE.2019.2892149). 278 | - Warren Toomey, First Edition Unix: Its Creation and Restoration, in *IEEE Annals of the History of Computing*, vol. 32, no. 3, pp. 74-82, July-Sept. 2010. doi:10.1109/MAHC.2009.55. [PDF](http://www.tuhs.org/Archive/Documentation/Papers/1eUnix_creation_restoration.pdf) 279 | - Warren Toomey, The Restoration of Early UNIX Artifacts, in *USENIX ATC '09: 2009 USENIX Annual Technical Conference*. 2009. [PDF](https://www.usenix.org/legacy/events/usenix09/tech/full_papers/toomey/toomey.pdf) 280 | - Diomidis Spinellis, Panagiotis Louridas, and Maria Kechagia. An exploratory study on the evolution of C programming in the Unix operating system. In Qing Wang and Guenther Ruhe, editors, *ESEM '15: 9th International Symposium on Empirical Software Engineering and Measurement*, pages 54–57. IEEE, October 2015. [HTML](http://www.dmst.aueb.gr/dds/pubs/conf/2015-ESEM-CodeStyle/html/SLK15.html), [PDF](http://www.dmst.aueb.gr/dds/pubs/conf/2015-ESEM-CodeStyle/html/SLK15.pdf) 281 | - Diomidis Spinellis, Panos Louridas, and Maria Kechagia. The evolution of C programming practices: A study of the Unix operating system 1973–2015. In Willem Visser and Laurie Williams, editors, *ICSE '16: Proceedings of the 38th International Conference on Software Engineering*, May 2016. Association for Computing Machinery. doi:10.1145/2884781.2884799. [PDF](http://www.dmst.aueb.gr/dds/pubs/conf/2016-ICSE-ProgEvol/html/SLK16.pdf), [HTML](http://www.dmst.aueb.gr/dds/pubs/conf/2016-ICSE-ProgEvol/html/SLK16.html) 282 | - Diomidis Spinellis. Documented Unix facilities over 48 years. In *MSR '18: Proceedings of the 15th Conference on Mining Software Repositories*. Association for Computing Machinery, May 2018. [doi:10.1145/3196398.3196476](http://dx.doi.org/10.1145/3196398.3196476) [PDF](https://www.dmst.aueb.gr/dds/pubs/conf/2018-MSR-Unix-man/html/unix-man.pdf), [poster](https://www.dmst.aueb.gr/dds/pubs/conf/2018-MSR-Unix-man/html/poster.pdf) 283 | - Research Edition Unix Manuals 284 | - [First Edition, November 1971](http://www.tuhs.org/Archive/Distributions/Research/Dennis_v1/UNIX_ProgrammersManual_Nov71.pdf) 285 | - [Second Edition, June 1972](http://www.tuhs.org/Archive/Distributions/Research/Dennis_v2/v2man.pdf) 286 | - [Third Edition, February 1973](https://dspinellis.github.io/unix-v3man/v3man.pdf) 287 | - [Fourth Edition, November 1973](https://dspinellis.github.io/unix-v4man/v4man.pdf) 288 | - [Fifth Edition, June 1974](http://www.tuhs.org/Archive/Distributions/Research/Dennis_v5/v5man.pdf) 289 | - [Sixth Edition, May 1975](https://archive.org/download/v6-manual/v6-manual.pdf) 290 | - [Seventh Edition, January 1979, Volume 1](https://s3.amazonaws.com/plan9-bell-labs/7thEdMan/v7vol1.pdf) 291 | - [Seventh Edition, January 1979, Volume 2a](https://s3.amazonaws.com/plan9-bell-labs/7thEdMan/v7vol2a.pdf) 292 | - [Seventh Edition, January 1979, Volume 2b](https://s3.amazonaws.com/plan9-bell-labs/7thEdMan/v7vol2b.pdf) 293 | - Wikipedia: The Free Encyclopedia 294 | - [History of Unix](https://en.wikipedia.org/wiki/History_of_Unix) 295 | - [List of Unix systems](https://en.wikipedia.org/wiki/List_of_Unix_systems) 296 | - [List of Unix commands](https://en.wikipedia.org/wiki/List_of_Unix_commands) 297 | - [List of Unix daemons](https://en.wikipedia.org/wiki/List_of_Unix_daemons) 298 | - [Research Unix](https://en.wikipedia.org/wiki/Research_Unix) 299 | - [Berkeley Software Distribution](http://en.wikipedia.org/wiki/BSD_Unix) 300 | - [Unix philosophy](https://en.wikipedia.org/wiki/Unix_philosophy) 301 | - TUHS: The Unix Heritage Society 302 | - [The Unix Tree](http://minnie.tuhs.org/cgi-bin/utree.pl) 303 | - Historical documents and data 304 | - [PDP-7 Unix restoration project](https://github.com/DoctorWkt/pdp7-unix) 305 | - [First Edition Unix printout - 1972](http://bitsavers.trailing-edge.com/pdf/bellLabs/unix/PreliminaryUnixImplementationDocument_Jun72.pdf) 306 | - [Unix 32/V Report - 1978](http://cm.bell-labs.com/cm/cs/who/dmr/otherports/32vscan.pdf) 307 | - [Berkeley CSRG Archive CD-ROMs](https://www.mckusick.com/csrg/index.html) 308 | - Studies 309 | - [M. Douglas McIlroy. A Research UNIX Reader: Annotated Excerpts from the Programmer's Manual, 1971-1986](https://archive.org/details/a_research_unix_reader) 310 | - [Michael S. Mahoney. Unix at the Bell Labs - People](http://www.princeton.edu/~hos/Mahoney/unixpeople.htm) 311 | 312 | ## Acknowledgements 313 | * The following people helped with Bell Labs login identifiers. 314 | * Brian W. Kernighan 315 | * Doug McIlroy 316 | * Arnold D. Robbins 317 | * The following people helped with *BSD login identifiers. 318 | * Clem Cole 319 | * Era Eriksson 320 | * Mary Ann Horton 321 | * Warner Losh 322 | * Kirk McKusick 323 | * Jeremy C. Reed 324 | * Ingo Schwarze 325 | * Anatole Shaw 326 | * The BSD SCCS import code is based on work by 327 | * [H. Merijn Brand](http://search.cpan.org/~hmbrand/VCS-SCCS-0.20/SCCS.pm) 328 | * [Jonathan Gray](https://github.com/jonathangray/csrg-git-patches/) 329 | 330 | ## Build identification 331 | Data set versioned DOI: [![DOI](https://zenodo.org/badge/DOI/10.5281/zenodo.2525586.svg)](https://doi.org/10.5281/zenodo.2525586) 332 | Software versioned DOI: [![DOI](https://zenodo.org/badge/DOI/10.5281/zenodo.2525601.svg)](https://doi.org/10.5281/zenodo.2525601) 333 | * Software URL: https://github.com/dspinellis/unix-history-make 334 | * Software SHA: 86383f1340e3735552b58df0a42696dbcb9dac00 335 | * Build timestamp: 2021-01-01 11:40:51 UTC 336 | -------------------------------------------------------------------------------- /adm.s: -------------------------------------------------------------------------------- 1 | " adm 2 | 3 | lac 017777 i 4 | sad d4 5 | jmp nofiles 6 | lac 017777 7 | tad d1 8 | dac name 9 | jms connect 10 | sys time 11 | llss 9 12 | ecla lls 3 13 | tad o60 14 | alss 9 15 | dac snumb 16 | ecla llss 3 17 | tad o60 18 | alss 9 19 | dac snumb+1 20 | ecla llss 3 21 | tad o60 22 | alss 9 23 | dac snumb+2 24 | lac d1 25 | sys write; snumb; 3 26 | lac d1 27 | sys write; o12; 1 28 | jms gcard; <$;<*;<$;<7;;;;012 217 | m2s = .-m1 218 | m2: 219 | ;;;;;;;;;;040;;040;;;;;;;;;;;;012 228 | m4s = .-m4 229 | 230 | stop: 231 | dpof 232 | las 233 | and o400000 234 | sna 235 | sys save 236 | sys exit 237 | 238 | carrier: 0100000 239 | ilock: 040000 240 | totime: 300 241 | disflg: 0 242 | 243 | flush: 0 244 | lac noc 245 | sna 246 | jmp flush i 247 | law 0104 248 | jms message; tbuf 249 | law tbuf 250 | dac opt 251 | dzm noc 252 | jmp flush i 253 | 254 | gcard: 0 255 | lac gcard i 256 | isz gcard 257 | sna 258 | jmp 3f 259 | lrss 9 260 | sad o45 261 | jmp 1f 262 | jms putc 263 | jmp gcard+1 264 | 1: 265 | -1 266 | tad gcard i 267 | cma 268 | dac 2f 269 | isz gcard 270 | 1: 271 | law 040 272 | jms putc 273 | isz 2f 274 | jmp 1b 275 | jmp gcard+1 276 | 2: 0 277 | 3: 278 | lac noc 279 | sna 280 | jmp gcard i 281 | sad d80 282 | jmp gcard i 283 | law 040 284 | jms putc 285 | jmp 3b 286 | 287 | done: 288 | jms gcard; <$;<%;6;;040040;040040;040040 98 | 99 | bincard: 0 100 | jms rawcard 101 | -24 102 | dac c 103 | law tbuf-1 104 | dac 8 105 | law buf-1 106 | dac 9 107 | 1: 108 | lac 8 i 109 | alss 6 110 | dac 1f 111 | lac 8 i 112 | dac 1f+1 113 | lac 8 i 114 | dac 1f+2 115 | lac 1f+1 116 | lrss 6 117 | xor 1f 118 | dac 9 i 119 | lac 1f+1 120 | alss 12 121 | xor 1f+2 122 | dac 9 i 123 | isz c 124 | jmp 1b 125 | jmp bincard i 126 | 1: 0;0;0 127 | 128 | rawcard: 0 129 | lac systime i 130 | tad wtime 131 | dac tmtime 132 | -80 133 | dac c 134 | law tbuf-1 135 | dac 8 136 | crsb 137 | 1: 138 | dzm crread i 139 | 2: 140 | lac systime i 141 | cma 142 | tad tmtime 143 | spa 144 | jmp timeout 145 | lac crread i 146 | sna 147 | jmp 2b 148 | lac crchar i 149 | dac 8 i 150 | isz c 151 | jmp 1b 152 | law 153 | dac 1f 154 | isz 1f 155 | jmp .-1 156 | jmp rawcard i 157 | 1: 0 158 | 159 | badcksum: 160 | lac d1 161 | sys write; m1; m1s 162 | jms wait 163 | jmp cloop 164 | 165 | badseq: 166 | lac d1 167 | sys write; m2; m2s 168 | jms wait 169 | jmp cloop 170 | 171 | notbin: 172 | lac d1 173 | sys write; m3; m3s 174 | jms wait 175 | cmp cloop 176 | 177 | timeout: 178 | lac d1 179 | sys write; m4; m4s 180 | jms wait 181 | jmp rawcard+1 182 | 183 | m1: 184 | ;;;;; 012 185 | m1s = .-m1 186 | 187 | m2: 188 | ;;;;; 012 189 | m2s = .-m2 190 | 191 | m3: 192 | ;;;; 012 193 | m3s = .-m3 194 | 195 | m4: 196 | ;;;div; 5 107 | " "jmp tab 108 | " "jmp ell 109 | sad o15 110 | jmp cret 111 | sad o40 112 | jmp 1f 113 | law cbuf1 114 | tad col 115 | dac t 116 | lac t i 117 | sza 118 | jmp inb2 119 | lac ch 120 | dac t i 121 | 1: 122 | isz col 123 | jmp cloop 124 | 125 | inb2: 126 | law cbuf2 127 | tad col 128 | dac t 129 | dac crflg 130 | lac ch 131 | dac t i 132 | isz col 133 | jmp cloop 134 | 135 | bksp: 136 | -1 137 | tad col 138 | spa 139 | cla 140 | dac col 141 | jmp cloop 142 | 143 | cret: 144 | dzm col 145 | jmp cloop 146 | 147 | pass2: 148 | law cbuf1 149 | 150 | p21: 151 | dac t 152 | dzm case 153 | -100 154 | dac c 155 | dzm nblank 156 | 157 | p2loop: 158 | lac t i 159 | sna 160 | jmp blk 161 | 162 | -1 163 | tad nblank 164 | spa 165 | jmp 2f 166 | cma 167 | dac c1 168 | 1: 169 | law 040 170 | jms putc 171 | isz c1 172 | jmp 1b 173 | dzm nblank 174 | 2: 175 | law casetab 176 | tad t i 177 | dac t1 178 | lac t1 i 179 | sad case 180 | jmp 1f 181 | sad d2 182 | jmp 1f 183 | dac case 184 | law 041 185 | jms putc 186 | law 041 187 | jms putc 188 | 1: 189 | lac t i 190 | sad o44 191 | jmp dol 192 | sad o41 193 | law 045 194 | sad o77 195 | law 0100 196 | sad o134 197 | law 0137 " ?? 198 | sad o137 199 | law 055 200 | sad o140 201 | law 0134 202 | sad o173 203 | law 0133 204 | sad o174 205 | law 046 206 | sad o175 207 | law 0135 208 | sad o176 209 | law 0137 " ?? 210 | jms putc 211 | jmp p2test 212 | 213 | dol: 214 | law 044 215 | jms putc 216 | law 044 217 | jms putc 218 | jmp p2test 219 | 220 | blk: 221 | isz nblank 222 | 223 | p2test: 224 | isz t 225 | isz c 226 | jmp p2loop 227 | lac crflg 228 | sna 229 | jmp 1f 230 | law 041 231 | jms putc 232 | law 060 233 | jms putc 234 | law 044 235 | jms putc 236 | law 040 237 | jms putc 238 | dzm crflg 239 | law cbuf2 240 | jmp p21 241 | 1: 242 | law 044 243 | jms putc 244 | law 040 245 | jms putc 246 | lac ch 247 | sad o4 248 | jmp floop 249 | jmp loop 250 | 251 | getc: 0 252 | lac ipt 253 | sad eipt 254 | jmp 1f 255 | dac 2f 256 | add o400000 257 | dac ipt 258 | ral 259 | lac 2f i 260 | szl 261 | lrss 9 262 | and o177 263 | sna 264 | jmp getc+1 265 | jmp getc i 266 | 1: 267 | lac fi 268 | sys read; rbuf; 64 269 | sna 270 | jmp 1f 271 | tad iipt 272 | dac eipt 273 | lac iipt 274 | dac ipt 275 | jmp getc+1 276 | 1: 277 | lac o4 278 | jmp getc i 279 | 280 | hangup: 281 | lac d1 282 | sys write; m1; m1s 283 | jmp stop 284 | 285 | abort: 286 | lac d1 287 | sys write; m2; m2s 288 | jmp stop 289 | 290 | nofiles: 291 | lac d1 292 | sys write; m3; m3s 293 | sys exit 294 | 295 | discon: 296 | lac d1 297 | sys write; m4; m4s 298 | jmp stop 299 | 300 | m1: 301 | ;;;012 302 | m1s = .-m1 303 | m2: 304 | ;;;;;;;;;;040;;040;;;;;;;;;;;;012 313 | m4s = .-m4 314 | 315 | stop: 316 | dpof 317 | sys exit 318 | 319 | ipt: 0 320 | eipt: 0 321 | iipt: rbuf 322 | fi: 0 323 | opt: tbuf 324 | noc: 0 325 | carrier: 0100000 326 | ilock: 040000 327 | totime: 300 328 | disflg: 0 " 2: both cases 329 | 330 | casetab: 331 | 2;2;2;2;2;2;2;2 332 | 2;2;2;2;2;2;2;2 333 | 2;2;2;2;2;2;2;2 334 | 2;2;2;2;2;2;2;2 335 | 2;1;2;2;2;0;0;2 336 | 2;2;2;2;2;0;2;2 337 | 2;2;2;2;2;2;2;2 338 | 2;2;2;2;2;2;2;1 " 0 - 100 case 339 | 0;0;0;0;0;0;0;0 " 1 - 200 case 340 | 0;0;0;0;0;0;0;0 " 2 - 300 case 341 | 0;0;0;0;0;0;0;0 342 | 0;0;0;0;0;0;2;1 343 | 2;1;1;1;1;1;1;1 344 | 1;1;1;1;1;1;1;1 345 | 1;1;1;1;1;1;1;1 346 | 1;1;1;1;1;1;1;1 347 | 348 | gcard: 0 349 | lac gcard i 350 | isz gcard 351 | sna 352 | jmp gcard i "circled with 3f written in and to the right: 353 | lrss 9 "3: lac noc 354 | sad o45 "sna 355 | jmp 1f "jmp gcard i 356 | jms putc "sad d80 357 | jmp gcard+1 "jmp gcard i 358 | 1: "law 040 359 | -1 "jms putc 360 | tad gcard i "jmp 3b 361 | cma 362 | dac 2f 363 | isz gcard 364 | 1: 365 | law 040 366 | jms putc 367 | isz 2f 368 | jmp 1b 369 | jmp gcard+1 370 | 2: 0 371 | 372 | done: 373 | lac noc 374 | sna 375 | jmp 1f 376 | sad d72 377 | jmp 1f 378 | law 040 379 | jms putc 380 | jmp done 381 | 1: 382 | jms gcard; <$;<%;6;> 37 | dzm dot+1 38 | jmp assm1 39 | 40 | assm3: 41 | lac rand 42 | sad d2 43 | jmp assm4 44 | sza 45 | jmp assm6 46 | lac rator 47 | sza 48 | jmp assm6 49 | lac rand+1 50 | jms betwen; dm1; d10 51 | jmp assm6 52 | dac name 53 | tad fbxp 54 | dac lvrand 55 | lac i lvrand 56 | dac name+1 57 | isz i lvrand 58 | lac o146 59 | dac name+2 60 | dzm name+3 61 | jms tlookup 62 | -1 63 | dac fbflg 64 | assm4: 65 | lac rand+1 66 | tad d4 67 | dac lvrand 68 | lac rator 69 | sza 70 | jmp assm5 71 | lac dot 72 | dac r 73 | lac dot+1 74 | dac r+1 75 | jmp 1f 76 | 77 | assm5: 78 | jms gpair 79 | jms expr 80 | 1: 81 | lac r 82 | dac i lvrand 83 | isz lvrand 84 | lac r+1 85 | dac i lvrand 86 | lac fbflg 87 | sna 88 | jmp assm1 89 | dzm fbflg 90 | dzm name+1 91 | lac o142 92 | dac name+2 93 | jms lookup 94 | jmp assm4 95 | 96 | assm6: 97 | jms error; x> 98 | jmp assm1 99 | 100 | init1: 0 101 | lac d1 102 | sys write; 1f; 2f-1f 103 | dzm passno 104 | lac o56040 105 | dac dot-4 106 | lac o56056 107 | dac cmflx-4 108 | lac o40040 109 | dac dot-3 110 | dac dot-2 111 | dac dot-1 112 | dac cmflx-3 113 | dac cmflx-2 114 | dac cmflx-1 115 | dzm iof 116 | jms init 117 | jmp i init1 118 | 1: 119 | 0111012 120 | 2: 121 | 122 | init2: 0 123 | lac d1 124 | dac passno 125 | sys write; 1f; 2f-1f 126 | jms init 127 | lac o17 128 | sys creat; 2f 129 | dac bfo 130 | sys open; 2f; 0 131 | dac bfi 132 | dzm bufadd 133 | jms copyz; buf; 64 134 | jmp i init2 135 | 1: 136 | 0111111;012000 137 | 2: 138 | 0141056;0157165;0164040;040040 139 | 140 | init: 0 141 | lac i 017777 142 | dac narg 143 | lac 017777 144 | tad d1 145 | dac fname 146 | -1 147 | dac eofflg 148 | jms nextfil 149 | jms ioinit 150 | dzm savchr 151 | dzm comflg 152 | lac d1 153 | dac dot 154 | dzm dot+1 155 | dzm cmflx 156 | lac d4096 157 | dac cmflx+1 158 | dzm fbflg 159 | jms copyz; fbxp: fbx; 10 160 | jmp i init 161 | 162 | finis: 163 | lac iof 164 | sys close 165 | jms bufwr 166 | lac bfi 167 | sys close 168 | lac bfo 169 | sys close 170 | -1 171 | tad namsiz 172 | cma 173 | rcl 174 | dac char 175 | rcl 176 | tad char 177 | dac 1f 178 | lac o17 179 | sys creat; n.out 180 | dac bfi 181 | sys write; namlst; 1: 0 182 | lac bfi 183 | sys close 184 | sys exit 185 | n.out: 186 | 0156056;0157165;0164040;040040 187 | 188 | process: 0 189 | lac dot+1 190 | dac lvrand 191 | lac dot 192 | sad d3 193 | jmp proc4 194 | sza 195 | jmp proc1 196 | -1 197 | tad cmflx+1 198 | cma 199 | tad lvrand 200 | dac lvrand 201 | 202 | proc1: 203 | lac lvrand 204 | spa 205 | jmp proc4 206 | and o17700 207 | sad bufadd 208 | jmp proc2 209 | jms bufwr 210 | jms copyz; buf; 64 211 | lac lvrand 212 | and o17700 213 | dac bufadd 214 | dac 1f 215 | lac bfi 216 | sys seek; 1: 0; 0 217 | spa 218 | jmp proc2 219 | lac bfi 220 | sys read; buf; 64 221 | 222 | proc2: 223 | lac lvrand 224 | and o77 225 | jms betwen; dm1; maxsto 226 | dac maxsto 227 | tad bufp 228 | dac lvrand 229 | lac r 230 | sna 231 | jmp proc3 232 | sad d3 233 | jmp proc5 234 | lac cmflx+1 235 | tad r+1 236 | dac r+1 237 | 238 | proc3: 239 | lac r+1 240 | dac i lvrand 241 | jmp i process 242 | 243 | proc4: 244 | jms error; .> 245 | lac d1 246 | dac dot 247 | dzm dot+1 248 | jmp skip 249 | 250 | proc5: 251 | jms error; u> 252 | jmp proc3 253 | 254 | bufwr: 0 255 | lac bfo 256 | sys seek; bufadd: 0; 0 257 | isz maxsto 258 | lac bfo 259 | sys write; bufp: buf; maxsto: -1 260 | -1 261 | dac maxsto 262 | jmp i bufwr 263 | 264 | :number: 0 265 | dac 3f 266 | lac d1000 267 | dac 2f 268 | 1: 269 | lac 3f 270 | cll 271 | idiv; 2: 0 272 | dac 3f 273 | lacq 274 | tad o60 275 | dac i 8 276 | lac 2b 277 | cll 278 | idiv; 10 279 | lacq 280 | dac 2b 281 | sza 282 | jmp 1b 283 | jmp i number 284 | 3: 0 285 | 286 | getsc: 0 287 | lac i getsc 288 | dac sctalp 289 | isz getsc 290 | lac i sctalp 291 | dac sctal 292 | add o400000 293 | dac i sctalp 294 | ral 295 | lac i sctal 296 | szl 297 | lrss 9 298 | and o177 299 | jmp i getsc 300 | 301 | putsc: 0 302 | and o177 303 | lmq 304 | lac i putsc 305 | dac sctalp 306 | isz putsc 307 | lac i sctalp 308 | dac sctal 309 | add o400000 310 | dac i sctalp 311 | sma cla 312 | jmp 1f 313 | llss 27 314 | dac i sctal 315 | lrss 9 316 | jmp i putsc 317 | 318 | 1: 319 | lac i sctal 320 | omq 321 | dac i sctal 322 | lacq 323 | jmp i putsc 324 | 325 | sctalp: 0 326 | sctal: 0 327 | 328 | betwen: 0 329 | dac 2f 330 | lac i betwen 331 | dac 3f 332 | isz betwen 333 | lac i 3f 334 | cma 335 | tad 2f 336 | spa 337 | jmp 1f 338 | lac i betwen 339 | dac 3f 340 | isz betwen 341 | lac i 3f 342 | cma 343 | tad d1 344 | tad 2f 345 | spa 346 | 1: 347 | isz betwen 348 | lac 2f 349 | jmp i betwen 350 | 2: 0 351 | 3: 0 352 | 353 | copyz: 0 354 | -1 355 | tad i copyz 356 | dac 8 357 | isz copyz 358 | lac i copyz 359 | cma 360 | tad d1 361 | dac 2f 362 | isz copyz 363 | 1: 364 | dzm i 8 365 | isz 2f 366 | jmp 1b 367 | jmp i copyz 368 | 2: 0 369 | 370 | error: 0 371 | lac passno 372 | sza 373 | jmp 1f 374 | isz error 375 | jmp i error 376 | 1: 377 | -1 378 | tad mesp 379 | dac 8 380 | lac i error 381 | dac i 8 382 | lac o40 383 | dac i 8 384 | lac rator 385 | sad d5 386 | jmp 1f 387 | lac savchr 388 | sad o12 389 | jmp 1f 390 | lac lineno 391 | jmp 2f 392 | 1: 393 | -1 394 | tad lineno 395 | 2: 396 | jms number 397 | lac o12 398 | dac i 8 399 | -2 400 | tad mesp 401 | cma 402 | tad 8 403 | dac 1f 404 | lac d1 405 | sys write; mesp: mes; 1: 0 406 | isz error 407 | jmp i error 408 | 409 | skip: 410 | lac rator 411 | sad d5 412 | jmp assm1 413 | 1: 414 | jms gchar 415 | sad d5 416 | jmp assm1 417 | jmp 1b 418 | 419 | ioinit: 0 420 | jms copyz; iobuf; 64 421 | lac iof 422 | sys read; iobufp: iobuf; 64 423 | sna 424 | jms nextfil 425 | lac iobufp 426 | dac tal 427 | -129 428 | dac talc 429 | jmp i ioinit 430 | 431 | nextfil: 0 432 | lac d1 433 | dac lineno 434 | lac iof 435 | sza 436 | sys close 437 | nf1: 438 | lac narg 439 | sad d4 440 | skp 441 | jmp 1f 442 | dzm eofflg 443 | jmp i nextfil 444 | 1: 445 | tad dm4 446 | dac narg 447 | lac fname 448 | tad d4 449 | dac fname 450 | sys open; fname: 0; 0 451 | dac iof 452 | sma 453 | lac passno 454 | sna 455 | jmp nextfil i 456 | lac fname 457 | dac 1f 458 | lac d1 459 | sys write; 1; 0; 4 460 | lac iof 461 | sma 462 | jmp 1f 463 | lac d1 464 | sys write; emes; 2 465 | sys exit 466 | 1: 467 | lac d1 468 | sys write; emes+1; 1 469 | jmp i nextfil 470 | emes: 471 | 040077;012000 472 | 473 | gchar: 0 474 | lac savchr 475 | dzm savchr 476 | sza 477 | jmp gch3 478 | lac eofflg 479 | sza 480 | jmp 1f 481 | lac o12 482 | jmp gch3 483 | 1: 484 | isz talc 485 | skp 486 | jms ioinit 487 | jms getsc; tal 488 | sna 489 | jmp gchar+1 490 | sad o177 491 | jmp gchar+1 492 | sad o12 493 | skp 494 | jmp 1f 495 | dzm comflg 496 | isz lineno 497 | 1: 498 | sad o42 499 | dac comflg 500 | dac char 501 | lac comflg 502 | sza 503 | jmp gchar+1 504 | lac char 505 | 506 | gch3: 507 | dac char 508 | jms betwen; d0; o200 509 | cla 510 | tad lactab 511 | dac .+1 512 | lac 0 513 | jmp i gchar 514 | 515 | gsymb: 0 516 | jms gchar 517 | dac rator 518 | tad jmpsw1 519 | dac 1f 520 | lac char 521 | sad o74 522 | jmp lqot 523 | dac namc 524 | jms gchar 525 | lac char 526 | sad o76 527 | jmp rqot 528 | dac savchr 529 | lac namc 530 | dac char 531 | 1: 532 | jmp 0 533 | 534 | jmpsw1: 535 | jmp .+1 536 | jmp i gsymb 537 | jmp i gsymb 538 | jmp i gsymb 539 | jmp i gsymb 540 | jmp gs1 541 | jmp i gsymb 542 | jmp gs2 543 | jmp gs3 544 | 545 | badchr: 546 | jms error; g> 547 | 1: 548 | jms gchar 549 | lac char 550 | sad o12 551 | skp 552 | jmp 1b 553 | dac savchr 554 | jmp gsymb+1 555 | 556 | lqot: 557 | jms gchar 558 | lac o40 559 | dac savchr 560 | lac char 561 | alss 9 562 | jmp 1f 563 | 564 | rqot: 565 | lac namc 566 | 1: 567 | dac rand+1 568 | lac d7 569 | dac rator 570 | jmp i gsymb 571 | 572 | gs1: 573 | jms gchar 574 | sad d4 575 | jmp gs1 576 | lac char 577 | dac savchr 578 | jmp i gsymb 579 | 580 | gs2: 581 | lac namep 582 | dac tal1 583 | -7 584 | dac tal1c 585 | lac char 586 | jms putsc; tal1 587 | 588 | gnam1: 589 | jms gchar 590 | jms betwen; d5; d8 591 | jmp gnam3 592 | lac char 593 | jms putsc; tal1 594 | isz tal1c 595 | jmp gnam1 596 | 597 | gnam2: 598 | jms gchar 599 | jms betwen; d5; d8 600 | skp 601 | jmp gnam2 602 | lac char 603 | dac savchr 604 | jms lookup 605 | jmp i gsymb 606 | 607 | gnam3: 608 | lac char 609 | dac savchr 610 | 1: 611 | lac o40 612 | jms putsc; tal1 613 | isz tal1c 614 | jmp 1b 615 | jms lookup 616 | jmp i gsymb 617 | 618 | gs3: 619 | dzm rand+1 620 | lac char 621 | sad o60 622 | jmp 1f 623 | lac d10 624 | jmp 2f 625 | 1: 626 | lac d8 627 | 2: 628 | dac num2 629 | 630 | num1: 631 | lac rand+1 632 | cll 633 | mul 634 | num2: 0 635 | lacq 636 | tad char 637 | tad dm48 638 | dac rand+1 639 | jms gchar 640 | sad d7 641 | jmp num1 642 | lac char 643 | dac savchr 644 | lac rand+1 645 | jms betwen; dm1; d10 646 | jmp i gsymb 647 | dac name 648 | tad fbxp 649 | dac name+1 650 | lac i name+1 651 | dac name+1 652 | lac savchr 653 | sad o146 654 | jmp 1f 655 | sad o142 656 | skp 657 | jmp i gsymb 658 | dzm name+1 659 | 1: 660 | dac name+2 661 | dzm name+3 662 | lac d6 663 | dac rator 664 | jms lookup 665 | dzm savchr 666 | jmp i gsymb 667 | 668 | tlookup: 0 669 | jmp 1f 670 | lookup: 0 671 | dzm tlookup 672 | 1: 673 | -1 674 | tad namlstp 675 | dac 8 676 | lac namsiz 677 | dac namc 678 | lu1: 679 | lac i 8 680 | sad name 681 | jmp 1f 682 | lac d5 683 | lu2: 684 | tad 8 685 | dac 8 686 | isz namc 687 | jmp lu1 688 | lac tlookup 689 | sna 690 | jmp 2f 691 | lac fnamep 692 | dac rand+1 693 | jmp i tlookup 694 | 2: 695 | lac name 696 | dac i 8 697 | lac 8 698 | dac rand+1 699 | lac name+1 700 | dac i 8 701 | lac name+2 702 | dac i 8 703 | lac name+3 704 | dac i 8 705 | lac d3 706 | dac i 8 707 | dzm i 8 708 | -1 709 | tad namsiz 710 | dac namsiz 711 | jmp i lookup 712 | 1: 713 | lac i 8 714 | sad name+1 715 | jmp 1f 716 | lac d4 717 | jmp lu2 718 | 1: 719 | lac i 8 720 | sad name+2 721 | jmp 1f 722 | lac d3 723 | jmp lu2 724 | 1: 725 | lac i 8 726 | sad name+3 727 | jmp 1f 728 | lac d2 729 | jmp lu2 730 | 1: 731 | -3 732 | tad 8 733 | dac rand+1 734 | lac tlookup 735 | sza 736 | jmp i tlookup 737 | jmp i lookup 738 | namep: name 739 | 740 | gpair: 0 741 | jms gsymb 742 | lac rator 743 | sad d4 744 | jmp gpair+1 745 | jms betwen; dm1; d6 746 | jmp gp1 747 | dzm rand 748 | dzm rand+1 749 | jmp i gpair 750 | gp1: 751 | sad d7 752 | lac d4 753 | tad dm4 754 | dac rand 755 | jms gsymb 756 | lac rator 757 | sad d4 758 | jmp gp2 759 | jms betwen; dm1; d6 760 | skp 761 | jmp i gpair 762 | jms error; x> 763 | jmp skip 764 | gp2: 765 | jms gchar 766 | jms betwen; d5; d8 767 | jmp gp3 768 | lac char 769 | dac savchr 770 | jmp i gpair 771 | gp3: 772 | lac char 773 | dac savchr 774 | jms gsymb 775 | jmp i gpair 776 | 777 | expr: 0 778 | jms grand 779 | -1 780 | dac srand 781 | exp5: 782 | lac rand 783 | dac r 784 | lac rand+1 785 | dac r+1 786 | exp1: 787 | lac rator 788 | jms betwen; d1; d5 789 | jmp exp3 790 | dac orator 791 | jms gpair 792 | jms grand 793 | lac orator 794 | sad d4 795 | jmp exp2 796 | jms oper; rand 797 | jmp exp1 798 | exp2: 799 | jms pickup 800 | lac r 801 | dac srand 802 | lac r+1 803 | dac srand+1 804 | jmp exp5 805 | exp3: 806 | sad d5 807 | jmp exp4 808 | jms error; x> 809 | jmp skip 810 | exp4: 811 | jms pickup 812 | jmp i expr 813 | 814 | pickup: 0 815 | lac srand 816 | spa 817 | jmp i pickup 818 | lac d4 819 | jms oper; srand 820 | jmp i pickup 821 | 822 | grand: 0 823 | lac rand 824 | sad d2 825 | skp 826 | jmp i grand 827 | lac rand+1 828 | tad d4 829 | dac rand+1 830 | lac i rand+1 831 | dac rand 832 | isz rand+1 833 | lac i rand+1 834 | dac rand+1 835 | jmp i grand 836 | 837 | oper: 0 838 | tad opsw 839 | dac oper1 840 | -1 841 | tad i oper 842 | dac 8 843 | isz oper 844 | lac r 845 | sad d3 846 | jmp oper2 847 | lac i 8 848 | sad d3 849 | jmp oper2 850 | oper1: 851 | jmp 0 852 | opsw: 853 | jmp .-1 854 | jmp oplus 855 | jmp ominus 856 | tad r 857 | dac r 858 | lac r+1 859 | lmq 860 | lac i 8 861 | omq 862 | jmp oret 863 | oplus: 864 | tad r 865 | dac r 866 | lac r+1 867 | tad i 8 868 | jmp oret 869 | ominus: 870 | cma 871 | tad d1 872 | tad r 873 | dac r 874 | -1 875 | tad i 8 876 | cma 877 | tad r+1 878 | oret: 879 | dac r+1 880 | lac r 881 | jms betwen; dm1; d2 882 | skp 883 | jmp i oper 884 | jms error; r> 885 | lac d1 886 | dac r 887 | jmp i oper 888 | oper2: 889 | dac r 890 | dzm r+1 891 | jmp i oper 892 | 893 | d0: 0 894 | d1: 1 895 | d4096: 4096 896 | d2: 2 897 | d3: 3 898 | d4: 4 899 | d5: 5 900 | d6: 6 901 | d7: 7 902 | d8: 8 903 | o12: d10: 10 904 | dm1: -1 905 | o40: 040 906 | o60: 060 907 | dm48: -48 908 | o400000: 0400000 909 | o177: 0177 910 | dm4: -4 911 | o200: 0200 912 | o42: 042 913 | o142: 0142 914 | o40040: 040040 915 | o56056: 056056 916 | o56040: 056040 917 | o146: 0146 918 | o17777: 017777 919 | d1000: 1000 920 | o17: 017 921 | o17700: 017700 922 | o77: 077 923 | o74: 074 924 | o76: 076 925 | 926 | namsiz: -2 927 | namlstp: namlst 928 | fnamep: fakename 929 | lactab: lac .+1 930 | 8;8;8;8;8;8;8;8 931 | 8;4;5;8;8;8;8;8 932 | 8;8;8;8;8;8;8;8 933 | 8;8;8;8;8;8;8;8 934 | 4;8;8;8;8;8;8;8 935 | 8;8;6;2;4;3;6;8 936 | 7;7;7;7;7;7;7;7 937 | 7;7;0;5;8;1;8;8 938 | 8;6;6;6;6;6;6;6 939 | 6;6;6;6;6;6;6;6 940 | 6;6;6;6;6;6;6;6 941 | 6;6;6;8;8;8;8;8 942 | 8;6;6;6;6;6;6;6 943 | 6;6;6;6;6;6;6;6 944 | 6;6;6;6;6;6;6;6 945 | 6;6;6;8;8;8;8;8 946 | 947 | fbflg: .=.+1 948 | tal: .=.+1 949 | talc: .=.+1 950 | tal1: .=.+1 951 | tal1c: .=.+1 952 | narg: .=.+1 953 | lvrand: .=.+1 954 | eofflg: .=.+1 955 | namc: .=.+1 956 | passno: .=.+1 957 | char: .=.+1 958 | savchr: .=.+1 959 | comflg: .=.+1 960 | rator: .=.+1 961 | orator: .=.+1 962 | rand: .=.+2 963 | srand: .=.+2 964 | r: .=.+2 965 | name: .=.+4 966 | buf: .=.+64 967 | iobuf: .=.+64 968 | fbx: .=.+10 969 | mes: .=.+20 970 | iof: .=.+1 971 | bfi: .=.+1 972 | bfo: .=.+1 973 | lineno: .=.+1 974 | 975 | fakename: .=.+6 976 | namlst: 977 | .=.+4 978 | dot: 979 | .=.+6 980 | cmflx: 981 | -------------------------------------------------------------------------------- /bc.s: -------------------------------------------------------------------------------- 1 | " bc 2 | 3 | jmp start 4 | rinit: 5 | jms initio 6 | jmp .+1 i 7 | initio: 0 8 | lac inter-1 9 | dac fetch 10 | jmp rinit 11 | jms inter 12 | inter: 0 13 | las 14 | and o17 15 | sza 16 | jms trace 17 | lac pc i 18 | dac instr 19 | lac pc 20 | and o10000 21 | sna 22 | jmp badpc 23 | lac sp 24 | and o17700 25 | sad o17700 26 | jmp badsp 27 | and o10000 28 | sna 29 | jmp badsp 30 | lac instr 31 | sad insasg 32 | skp 33 | jmp inter i 34 | -4 35 | tad sp 36 | dac t1 37 | lac t1 i 38 | and o10000 39 | sna 40 | jmp badasgn 41 | lac instr 42 | jmp inter i 43 | 44 | trace: 0 45 | and d1 46 | sza 47 | jms dtrace 48 | las 49 | and d2 50 | sza 51 | jms ddisp 52 | las 53 | and d4 54 | sza 55 | jms histog 56 | las 57 | and d8 58 | sza 59 | jmp stop 60 | jmp trace i 61 | 62 | dtrace: 0 63 | lac pc 64 | dac 8 65 | lac 8 i 66 | dac instr 67 | lac 8 68 | jms octal; -4 69 | law 040 70 | jms putc 71 | lac instr 72 | cll; lrs 14 73 | tad lacop 74 | dac .+1 75 | lac .. 76 | jms putc 77 | law 040 78 | jms putc 79 | lac instr 80 | jms octal; -4 81 | 82 | lac instr 83 | sad inslitr 84 | skp 85 | jmp 1f 86 | law 040 87 | jms putc 88 | lac 8 i 89 | jms octal; -6 90 | 1: 91 | law 012 92 | jms putc 93 | jms flush 94 | jmp dtrace i 95 | 96 | ddisp: 0 97 | jms dspinit 98 | lac dspbp 99 | dac 8 100 | lac dp 101 | sad olddp 102 | skp 103 | jms dspblk 104 | lac pc 105 | jms dspnt 106 | lac sp 107 | jms dspnt 108 | lac lastv 109 | jms dspnt 110 | -1 111 | dac B i 112 | lac pbs i 113 | sza 114 | jmp .-2 115 | jmp ddisp i 116 | 117 | dspblk: 0 118 | lac dspbuf 119 | dac 8 120 | lac dp 121 | dac t1 122 | dzm t2 123 | 1: 124 | lac t1 125 | sna 126 | jmp 1f 127 | lac o216000 " dx -20 128 | dac 8 i 129 | lac t2 130 | tad o20 131 | dac t2 132 | lac t1 133 | tad d1 134 | dac t3 135 | lac t3 i 136 | jms dspnt 137 | lac t1 i 138 | dac t1 139 | jmp 1b 140 | 1: 141 | lac o160020 " sx 20 142 | tad t2 143 | dac dspbuf i 144 | dac 8 i 145 | lac 8 146 | dac dspbp 147 | jmp dspblk i 148 | 149 | dspnt: 0 150 | and o7777 151 | lrss 2 152 | xor o164000 " sy 0 153 | dac 8 i 154 | lac o17010 155 | dac 8 i 156 | jmp dspnt i 157 | 158 | dspinit: 0 159 | -1 160 | tad dspinit 161 | dac dspinit 162 | -300 163 | tad lastv 164 | dac lastv 165 | dac dspbuf 166 | -1 167 | dac dspinit i 168 | dac dspbuf i 169 | dzm olddp 170 | lac dspbuf 171 | sys capt 172 | law 13 173 | sys sysloc 174 | dac pbs 175 | jmp dspinit i 176 | 177 | histog: 0 178 | jms hisinit 179 | lac pc 180 | lrs 6 181 | and o77 182 | tad histbuf 183 | dac t1 184 | isz t1 i 185 | jmp histog i 186 | jmp . 187 | 188 | hisinit: 0 189 | -1 190 | tad hisinit 191 | dac hisinit 192 | -1 193 | dac hisinit i 194 | -64 195 | dac t1 196 | tad lastv 197 | dac lastv 198 | dac histbuf 199 | tad dm1 200 | dac 8 201 | 1: 202 | dsm 8 i 203 | isz t1 204 | jmp 1b 205 | jmp hisinit i 206 | 207 | histbuf: 0 208 | olddp: 0 209 | dspbuf: 0 210 | dspbp: 0 211 | instr: 0 212 | obs: 0 213 | inslitr: n 5 214 | insasg: b 1 215 | o17: 017 216 | d8: 8 217 | o77: 077 218 | o10000: 010000 219 | d5: 5 220 | o60: 060 221 | o7777: 07777 222 | o216000: 0216000 223 | o160020: 0160020 224 | o20: 020 225 | o164000: 0164000 226 | o17010: 017010 227 | o17700: 017700 228 | d2: 2 229 | 230 | lacop: lac . 231 | a>;b>;c>;f>;n>;s>;t>;u>;x>;y> 232 | 233 | badpc: 234 | jms flush 235 | lac d1 236 | sys write; mpc; mpcs 237 | jmp stop 238 | badsp: 239 | jms flush 240 | lac d1 241 | sys write; msp; msps 242 | jmp stop 243 | badasgn: 244 | jms flush 245 | lac d1 246 | sys write; mas; mass 247 | jmp stop 248 | mpc: 249 | 012;;012 250 | mpcs = .-mpc 251 | msp: 252 | 012;;012 253 | msps = .-msp 254 | mas: 255 | 012;;012 256 | mass = .-mas 257 | 258 | octal: 0 259 | lmq 260 | lac d5 261 | tad octal i 262 | cma 263 | dac 2f 264 | sna 265 | jmp 3f 266 | 1: 267 | llss 3 268 | isz 2f 269 | jmp 1b 270 | 3: 271 | lac octal i 272 | dac 2f 273 | lacq 274 | dac 2f+1 275 | 1: 276 | lac 2f+1 277 | lmq 278 | ecla llss 3 279 | tad o60 280 | jms putc 281 | lac 2f+1 282 | alss 3 283 | dac 2f+1 284 | isz 2f 285 | jmp 1b 286 | isz octal 287 | jmp octal i 288 | 2: 0;0 289 | -------------------------------------------------------------------------------- /bi.s: -------------------------------------------------------------------------------- 1 | " bi 2 | 3 | start: 4 | jms initio 5 | -1 6 | tad .main 7 | dac pc 8 | 9 | fetch: 10 | lac pc i 11 | lmq 12 | and o17777 13 | dac addr 14 | ecla lls 4 15 | tad .+3 16 | dac .+1 17 | jmp .. i 18 | jmp . i 19 | autop; binop; consop; ifop; etcop; setop; traop 20 | unaop; extop; aryop 21 | 22 | 23 | ifop: 24 | -2 25 | tad sp 26 | dac sp 27 | lac sp i 28 | dac t1 29 | lac t1 i 30 | sza 31 | jmp fetch 32 | -1 33 | tad addr i 34 | dac pc 35 | jmp fetch 36 | 37 | autop: 38 | lac addr 39 | tad dp 40 | dac sp i 41 | isz sp 42 | isz sp 43 | jmp fetch 44 | 45 | binop: 46 | -2 47 | tad sp 48 | dac sp 49 | tad dm1 50 | dac t4 51 | tad dm1 52 | dac t3 53 | lac t3 i 54 | dac t1 55 | lac sp i 56 | dac t2 57 | lac t4 58 | dac t3 i 59 | lac addr 60 | tad .+3 61 | dac .+1 62 | jmp .. i 63 | jmp . i 64 | basg; bor; band; beq; bne; ble; blt; bge; bgt; brsh; blsh 65 | badd; bmin; bmod; bmul; bdiv 66 | 67 | basg: 68 | lac t2 i 69 | dac t1 i 70 | dac t4 i 71 | jmp fetch 72 | 73 | bor: 74 | lac t1 i 75 | lmq 76 | lac t2 i 77 | omq 78 | dac t4 i 79 | jmp fetch 80 | 81 | band: 82 | lac t1 i 83 | and t2 i 84 | dac t4 i 85 | jmp fetch 86 | 87 | beq: 88 | lac t1 i 89 | xor t2 i 90 | sna cla 91 | lac d1 92 | dac t4 i 93 | jmp fetch 94 | 95 | bne: 96 | lac t1 i 97 | xor t2 i 98 | sza 99 | lac d1 100 | dac t4 i 101 | jmp fetch 102 | 103 | ble: 104 | lac t2 i 105 | cma 106 | tad t1 i 107 | spa cla 108 | lac d1 109 | dac t4 i 110 | jmp fetch 111 | 112 | blt: 113 | lac t1 i 114 | cma 115 | tad t2 i 116 | sma cla 117 | lac d1 118 | dac t4 i 119 | jmp fetch 120 | 121 | bge: 122 | lac t1 i 123 | cma 124 | tad t2 i 125 | spa cla 126 | lac d1 127 | dac t4 i 128 | jmp fetch 129 | 130 | bgt: 131 | lac t2 i 132 | cma 133 | tad t1 i 134 | sma cla 135 | lac d1 136 | dac t4 i 137 | jmp fetch 138 | 139 | brsh: 140 | blsh: 141 | hlt 142 | 143 | badd: 144 | lac t1 i 145 | tad t2 i 146 | dac t4 i 147 | jmp fetch 148 | 149 | bmin: 150 | lac t1 i 151 | cma 152 | tad t2 i 153 | cma 154 | dac t4 i 155 | jmp fetch 156 | 157 | bmod: 158 | lac t2 i 159 | dac .+4 160 | lac t1 i 161 | cll; idiv; .. 162 | dac t4 i 163 | jmp fetch 164 | 165 | bmul: 166 | lac t2 i 167 | dac .+4 168 | lac t1 i 169 | cll; mul; .. 170 | lacq 171 | dac t4 i 172 | jmp fetch 173 | 174 | bdiv: 175 | lac t2 i 176 | dac .+4 177 | lac t1 i 178 | cll; idiv; .. 179 | lacq 180 | dac t4 i 181 | jmp fetch 182 | 183 | consop: 184 | lac sp 185 | tad d1 186 | dac sp i 187 | isz sp 188 | lac addr 189 | dac sp i 190 | isz sp 191 | jmp fetch 192 | 193 | etcop: 194 | lac addr 195 | tad .+3 196 | dac .+1 197 | jmp .. i 198 | jmp . i 199 | mcall; mark; call; vector; litrl; goto; retrn; escp 200 | 201 | mcall: 202 | -2 203 | tad sp 204 | dac t1 205 | lac t1 i 206 | dac t2 207 | -1 208 | tad t2 i 209 | lmq 210 | lac dp 211 | dac t1 i 212 | lac t1 213 | dac dp 214 | isz t1 215 | lac pc 216 | dac t1 i 217 | lacq 218 | dac pc 219 | jmp fetch 220 | 221 | mark: 222 | -1 223 | tad sp 224 | dac t2 225 | tad dm1 226 | dac t1 227 | lac t1 i 228 | dac t3 229 | lac t3 i 230 | dac t2 i 231 | lac ap 232 | dac t1 i 233 | lac t1 234 | dac ap 235 | jmp fetch 236 | 237 | call: 238 | lac ap 239 | tad d1 240 | dac 8 241 | dac 9 242 | 1: 243 | lac 8 i 244 | dac t1 245 | lac t1 i 246 | dac 9 i 247 | isz 8 248 | -1 249 | tad sp 250 | sad 8 251 | skp 252 | jmp 1b 253 | lac ap i 254 | lmq 255 | lac dp 256 | dac ap i 257 | lac ap 258 | dac dp 259 | isz ap 260 | -1 261 | tad ap i 262 | dac t1 263 | lac pc 264 | dac ap i 265 | lacq 266 | dac ap 267 | lac t1 268 | dac pc 269 | jmp fetch 270 | 271 | vector: 272 | -2 273 | tad sp 274 | dac sp 275 | tad dm2 276 | dac t1 277 | lac sp i 278 | dac t2 279 | lac t1 i 280 | dac t3 281 | lac t3 i 282 | tad t2 i 283 | dac t1 i 284 | jmp fetch 285 | 286 | litrl: 287 | lac sp 288 | tad d1 289 | dac sp i 290 | isz sp 291 | lac pc i 292 | dac sp i 293 | isz sp 294 | jmp fetch 295 | 296 | goto: 297 | -2 298 | tad sp 299 | dac sp 300 | lac sp i 301 | dac t1 302 | -1 303 | tad t1 i 304 | dac pc 305 | jmp fetch 306 | 307 | retrn: 308 | -2 309 | tad sp 310 | dac sp 311 | lac sp i 312 | dac t1 313 | lac t1 i 314 | lmq 315 | lac dp 316 | dac sp 317 | dac t1 318 | lac sp i 319 | sna 320 | jmp stop 321 | dac dp 322 | isz sp 323 | lac sp 324 | dac t1 i 325 | lac sp i 326 | dac pc 327 | lacq 328 | dac sp i 329 | isz sp 330 | jmp fetch 331 | 332 | escp: 333 | law 2 334 | tad pc 335 | dac t1 336 | jmp t1 i 337 | 338 | setop: 339 | lac addr 340 | tad dp 341 | dac sp 342 | jmp fetch 343 | 344 | traop: 345 | -1 346 | tad addr 347 | dac pc 348 | jmp fetch 349 | 350 | unaop: 351 | -1 352 | tad sp 353 | dac t3 354 | tad dm1 355 | dac t2 356 | lac t2 i 357 | dac t1 358 | lac t3 359 | dac t2 i 360 | lac addr 361 | tad .+3 362 | dac .+1 363 | jmp .. i 364 | jmp . i 365 | uadr; umin; uind; unot 366 | 367 | uadr: 368 | lac t1 369 | dac t3 i 370 | jmp fetch 371 | 372 | umin: 373 | -1 374 | tad t1 i 375 | cma 376 | dac t3 i 377 | jmp fetch 378 | 379 | uind: 380 | lac t1 i 381 | dac t2 i 382 | jmp fetch 383 | 384 | unot: 385 | lac t1 i 386 | sna cla 387 | lac d1 388 | dac t3 i 389 | jmp fetch 390 | 391 | extop: 392 | lac addr 393 | dac sp i 394 | isz sp 395 | isz sp 396 | jmp fetch 397 | 398 | aryop: 399 | lac addr 400 | tad dp 401 | dac t1 402 | tad d1 403 | dac t1 i 404 | jmp fetch 405 | 406 | a = 040000 407 | b = a+a 408 | c = b+a 409 | f = c+a 410 | n = f+a 411 | s = n+a 412 | t = s+a 413 | u = t+a 414 | x = u+a 415 | y = x+a 416 | 417 | d1: 1 418 | dm1: -1 419 | dm2: -2 420 | o17777: 017777 421 | 422 | t1: 0 423 | t2: 0 424 | t3: 0 425 | t4: 0 426 | addr: 0 427 | 428 | pc = 017 429 | 430 | sp: stack 431 | dp: stack 432 | ap: stack 433 | stack: 0 -------------------------------------------------------------------------------- /bl.s: -------------------------------------------------------------------------------- 1 | " bl 2 | 3 | jmp start 4 | 5 | .array: .+1 6 | s 2 7 | n 8 8 | n 7 9 | -1 10 | tad sp i 11 | cma 12 | tad lastv 13 | dac lastv 14 | lmq 15 | lac sp 16 | tad d1 17 | dac sp i 18 | isz sp 19 | lacq 20 | dac sp i 21 | isz sp 22 | jmp fetch 23 | 24 | .read: .+1 25 | s 2 26 | n 8 27 | n 7 28 | lac sp 29 | tad d1 30 | dac sp i 31 | isz sp 32 | jms getc 33 | dac sp i 34 | isz sp 35 | jmp fetch 36 | 37 | .write: .+1 38 | s 2 39 | n 8 40 | n 7 41 | lac sp i 42 | dac t1 43 | lrss 9 44 | jms putc 45 | lac t1 46 | jms putc 47 | jmp fetch 48 | 49 | .flush: .+1 50 | n 8 51 | n 7 52 | jms flush 53 | jmp fetch 54 | 55 | getc: 0 56 | lac iflg 57 | dzm iflg 58 | sza 59 | jmp getc i 60 | lac cibufp 61 | sad eibufp 62 | jmp 1f 63 | lac cibufp i 64 | and o777 65 | dac iflg 66 | lac cibufp i 67 | isz cibufp 68 | lrss 9 69 | jmp getc i 70 | 1: 71 | lac .fin 72 | sys read; ibufp: ..; 64 73 | sna spa 74 | jmp 1f 75 | tad ibufp 76 | dac eibufp 77 | lac ibufp 78 | dac cibufp 79 | jmp getc+1 80 | 1: 81 | lac o4 82 | jmp getc i 83 | 84 | putc: 0 85 | and o777 86 | sna 87 | jmp putc i 88 | lmq 89 | lac oflg 90 | sza 91 | jmp 1f 92 | lacq 93 | alss 9 94 | dac cobufp i 95 | dac oflg 96 | jmp putc i 97 | 1: 98 | lac cobufp i 99 | omq 100 | dac cobufp i 101 | dac cobufp i 102 | dzm oflg 103 | isz cobufp 104 | lac cobufp 105 | sad eobufp 106 | skp 107 | jmp putc i 108 | lac .fout 109 | sys write; obufp: ..; 64 110 | lac obufp 111 | dac cobufp 112 | jmp putc i 113 | 114 | stop: 115 | jms flush 116 | las 117 | sma 118 | sys save 119 | sys exit 120 | 121 | flush: 0 122 | lac oflg 123 | sza 124 | isz cobufp 125 | lac cobufp 126 | cma 127 | tad obufp 128 | cma 129 | sna 130 | jmp flush i 131 | dac 1f+1 132 | lac obufp 133 | dac 1f 134 | lac .fout 135 | sys write; 1: ..; .. 136 | lac obufp 137 | dac cobufp 138 | dzm oflg 139 | jmp flush i 140 | 141 | initio: 0 142 | lac 017777 i 143 | sad d4 144 | jmp 2f 145 | sad d8 146 | jmp 1f 147 | 148 | law 9 149 | tad 017777 150 | dac .+3 151 | law 017 152 | sys creat; .. 153 | spa 154 | jmp stop 155 | dac .fout 156 | 1: 157 | law 5 158 | tad 017777 159 | dac .+2 160 | sys open; ..; 0 161 | spa 162 | jmp stop 163 | dac .fin 164 | 2: 165 | lac lastv 166 | dac eibufp 167 | dac cibufp 168 | -64 169 | tad lastv 170 | dac lastv 171 | dac ibufp 172 | lac lastv 173 | dac eobufp 174 | -64 175 | tad lastv 176 | dac lastv 177 | dac obufp 178 | dac cobufp 179 | dzm oflg 180 | jmp initio i 181 | 182 | .fin: 0 183 | .fout: 1 184 | eibufp: 0 185 | cibufp: 0 186 | iflg: 0 187 | eobufp: 0 188 | cobufp: 0 189 | oflg: 0 190 | lastv: 017770 191 | 192 | o777: 0777 193 | d4:o4: 4 194 | d8: 8 -------------------------------------------------------------------------------- /cas.s: -------------------------------------------------------------------------------- 1 | " cas 2 | 3 | narg = i 017777 4 | 5 | lac 017777 6 | tad d5 7 | dac name1 8 | tad d4 9 | dac name 2 10 | lac narg 11 | sad d4 12 | jmp 1f 13 | sad d8 14 | jmp 2f 15 | jmp 3f 16 | 1: 17 | law ttyout 18 | dac name1 19 | 2: 20 | law ttyin 21 | dac name2 22 | 3: 23 | sys open; name2: 0; 0 24 | sma 25 | jmp 1f 26 | lac name2 27 | dac 2f 28 | lac d1 29 | sys write; 2: 0; 4 30 | lac d1 31 | sys write; mes; 2 32 | sys exit 33 | 1: 34 | sys open; name1: 0; 1 35 | sma 36 | jmp 1f 37 | lac name1 38 | dac 2f 39 | lac o17 40 | sys creat; 2: 0 41 | sma 42 | jmp 1f 43 | lac name1 44 | dac 2f 45 | lac d1 46 | sys write; 2: 0; 4 47 | lac d1 48 | sys write; mes; 2 49 | sys exit 50 | mes: 51 | 040077;012 52 | 1: 53 | dzm nchar 54 | dzm x 55 | dzm y 56 | dzm parflg 57 | dzm nins 58 | dzm nwds 59 | lac bufp 60 | dac 10 61 | 62 | advanc: 63 | lac nchar 64 | dzm nchar 65 | sza 66 | jmp adv1 67 | lac d2 68 | sys read; char; 1 69 | sna 70 | jmp done 71 | lac char 72 | and o777 73 | dac nchar 74 | lac char 75 | lrss 9 76 | 77 | adv1: 78 | sna 79 | jmp advanc 80 | dac char 81 | lac labflg 82 | sna 83 | jmp 2f 84 | lac char 85 | sad o12 86 | skp 87 | jmp 1f 88 | dzm labflg 89 | dac i 11 90 | jmp advanc 91 | 1: 92 | dac i 11 93 | jmp advanc 94 | 2: 95 | lac parflg 96 | sza 97 | jmp atoz 98 | lac char 99 | sad o12 100 | jmp advanc 101 | sad o72 102 | skp 103 | jmp 1f 104 | -4 105 | dac labflg 106 | dac mod3 107 | jms wbuf "??? 108 | lac lbufp 109 | dac 11 110 | lac o170072 111 | dac i 10 112 | lac o12 113 | dac i 10 114 | lac o60 115 | dac i 10 116 | isz nwds 117 | isz nwds 118 | isz nwds 119 | jmp advanc 120 | 1: 121 | sad o170 122 | skp 123 | jmp 1f 124 | dzm vis 125 | jmp advanc 126 | 1: 127 | sad o166 128 | skp 129 | jmp 1f 130 | lac visbit 131 | dac vis 132 | jmp advanc 133 | 1: 134 | sad 0162 135 | skp 136 | jmp letr 137 | isz mod3 138 | skp 139 | jmp 2f 140 | lac o60060 141 | 1: 142 | dac i 10 143 | isz nwds 144 | isz mod3 145 | jmp 1b 146 | 2: 147 | lac o12 148 | dac i 10 149 | isz nwds 150 | lac lbufp 151 | dac 11 152 | 1: "??? 153 | lac i 11 154 | sad o12 155 | jmp 1f 156 | dac i 10 157 | isz nwds 158 | jmp 1b 159 | 1: 160 | lac o75170 161 | dac i 10 162 | isz nwds 163 | lac ob1 164 | dac i 10 165 | isz nwds 166 | lac sp 167 | dac i 10 168 | isz nwds 169 | lac nins 170 | dzm nins 171 | tad o100 172 | lmq 173 | llss 10 174 | cla 175 | llss 3 176 | alss 6 177 | llss 3 178 | tad o60060 179 | dac i 10 180 | cla 181 | llss 3 182 | alss 6 183 | llss 3 184 | tad o60060 185 | dac i 10 186 | cla 187 | llss 3 188 | alss 6 189 | llss 3 190 | tad o60060 191 | dac i 10 192 | lac nwds 193 | tad d4 194 | dac nwds 195 | lac o12012 196 | dac i 10 197 | dzm x 198 | dzm y 199 | jmp advanc 200 | letr: 201 | tad om141 "??? 202 | spa 203 | jmp error 204 | tad dm16 205 | sma "??? 206 | jmp error 207 | cma "??? 208 | tad dm3 209 | dac ny 210 | -1 211 | dac parflg 212 | jmp advanc 213 | 214 | atoz: 215 | lac char 216 | tad om141 217 | spa 218 | jmp error 219 | tad dm14 220 | sma 221 | jmp error 222 | tad d14 223 | dac nx 224 | 225 | loop: 226 | -1 227 | tad x 228 | cma 229 | tad nx 230 | dac delx 231 | -1 232 | tad y 233 | cma 234 | tad ny 235 | dac dely 236 | " generate direction 237 | 238 | lac delx 239 | sna 240 | jmp c1 241 | spa 242 | jmp c2 243 | lac dely ;"dx ,gr, 0 244 | sna 245 | jmp c3 246 | spa 247 | jmp c4 248 | lac d1 249 | jmp b 250 | c3: 251 | lac d2 252 | jmp a 253 | c4: 254 | lac d3 255 | jmp b 256 | 257 | c1: 258 | lac dely 259 | sna 260 | jmp out 261 | spa 262 | jmp c5 263 | cla 264 | jmp a 265 | c5: 266 | lac d4 267 | jmp a 268 | c2: 269 | lac dely 270 | sna 271 | jmp c6 272 | spa 273 | jmp c7 274 | lac d7 275 | jmp b 276 | c6: 277 | lac d6 278 | jmp a 279 | c7: 280 | lac d5 281 | jmp b 282 | " 283 | " 284 | a: 285 | dac direc 286 | lac delx 287 | sma 288 | jmp 1f 289 | cma 290 | tad d1 291 | dac delx 292 | 1: 293 | lac dely 294 | sma 295 | jmp 1f 296 | cma 297 | tad d1 298 | 1: 299 | tad dlex 300 | tad dm4 301 | sma 302 | cla 303 | tad d3 304 | dac dist 305 | tad incxp 306 | dac tmp 307 | lac i tmp 308 | dac incx 309 | lac dist 310 | tad incyp 311 | dac tmp 312 | lac i tmp 313 | dac incy 314 | jmp com 315 | " 316 | b: 317 | dzm dist 318 | dac direc 319 | lac incxt 320 | dac incx 321 | lac incyt 322 | dac incy 323 | " 324 | com: 325 | isz nins 326 | lac dist 327 | alss 4 328 | xor vis 329 | xor direc 330 | isz mod3 331 | skp 332 | jmp 1f 333 | 2: 334 | lmq 335 | llss 12 336 | cla 337 | llss 3 338 | alss 6 339 | llss 3 340 | tad o60060 341 | dac i 10 342 | isz nwds 343 | jmp 3f 344 | 1: 345 | dac tmp 346 | lac o12060 347 | dac i 10 348 | isz nwds 349 | -3 350 | dac mod3 351 | lac tmp 352 | jmp 2b 353 | 3: 354 | lac direc 355 | tad incx 356 | dac tmp 357 | lac i tmp 358 | tad x 359 | dac x 360 | lac direc 361 | tad incy 362 | dac tmp 363 | lac i tmp 364 | tad y 365 | dac y 366 | jmp loop 367 | out: 368 | lac nx 369 | dac x 370 | lac ny 371 | dac y 372 | dzm parflg 373 | jmp advanc 374 | 375 | done: 376 | lac d2 377 | sys close 378 | jms wbuf 379 | lac d3 380 | sys close 381 | sys exit 382 | 383 | error: 384 | lac d1 385 | sys write; char; 1 386 | lac d1 387 | sys write; mes; 2 388 | dzm parflg 389 | dzm labflg 390 | jmp advanc 391 | 392 | wbuf: 0 393 | lac nwds 394 | dac 1f 395 | lac d3 396 | sys write; buf; 1f: 0; "??? 397 | dzm nwds 398 | lac bufp 399 | dac 10 400 | jmp i wbuf 401 | 402 | d1: 1 403 | d2: 2 404 | d3: 3 405 | d4: 4 406 | d5: 5 407 | d6: 6 408 | d7: 7 409 | d8: 8 410 | o12: 012 411 | o75170: 075170 412 | ob1: 055142 413 | 414 | sp: 053060 415 | o60: 060 416 | o60060: 060060 417 | o73: 073 418 | d6: 6 "seems like a dupe 419 | d14: 14 420 | dm14: -14 421 | dm16: -16 422 | om141: -0141 "??? 423 | dm3: -3 424 | dm4: -4 425 | o162: 0162 426 | o166: 0166 427 | o17: 017 428 | o777: 0777 429 | o72: 072 430 | o170: 0170 431 | o10000: 010000 432 | o20000: 020000 433 | o200000: 0200000 434 | o41: 041 435 | ttyin: 436 | 0164164;0171151;0156040;040040 437 | ttyout: 438 | 0164164;0171157;0165164;040040 439 | 440 | char: .=.+1 441 | parflg: .=.+1 442 | labflg: .=.+1 443 | obuf: .=.+8 444 | x: .=.+1 445 | y: .=.+1 446 | nx: .=.+1 447 | ny: .=.+1 448 | vis: .=.+1 449 | nchar: .=.+1 450 | " 451 | incxp:incxt 452 | incyp:incyt 453 | incxt: x1;x2;x3;x4 454 | incyt: y1;y2;y3;y4 455 | " 456 | x1: 0;1;1;1;0;-1;-1;-1 457 | x2: 0;2;2;2;0;-2;-2;-2 458 | x3: 0;3;3;3;0;-3;-3;-3 459 | x4: 0;4;4;4;0;-4;-4;-4 460 | y1: 1;1;0;-1;-1;-1;0;1 461 | y2: 2;2;0;-2;-2;-2;0;2 462 | y3: 3;3;0;-3;-3;-3;0;3 463 | y4: 4;4;0;-4;-4;-4;0;4 464 | delx: .=.+1 465 | dely: .=.+1 466 | incx: .=.+1 467 | incy: .=.+1 468 | direc: .=.+1 469 | dist: .=.+1 470 | visbit: 010 471 | mod3: .=.+1 472 | tmp: .=.+1 473 | buf: .=.+500 474 | bufp: buf-1 475 | lbuf: .=.+10 476 | lpbufp: lbuf-1 477 | nwds: .=.+1 478 | o1770072: 0170072 479 | nins: .=.+1 480 | o100: 0100 481 | o12012: 012012 482 | o12060: 012060 483 | 484 | 485 | 486 | 487 | 488 | :ca 489 | v 490 | af 491 | nl "??? 492 | x 493 | hd 494 | v 495 | hi 496 | x 497 | mn 498 | r 499 | 500 | :cb 501 | x 502 | ga 503 | v 504 | gi 505 | ik 506 | kk 507 | mi "??? 508 | ma 509 | aa 510 | ai 511 | ck 512 | ek 513 | gi 514 | x 515 | mn 516 | r 517 | 518 | :cc 519 | x 520 | kk 521 | v 522 | mi "??? 523 | mc 524 | ka 525 | ca 526 | ac 527 | ai 528 | dl 529 | x 530 | mn 531 | r 532 | 533 | :cd 534 | v 535 | aa 536 | ai 537 | ck 538 | kk 539 | mi 540 | ma 541 | x 542 | mn 543 | r 544 | 545 | :ce 546 | x 547 | mk 548 | v 549 | ma 550 | aa 551 | ak 552 | x 553 | gh 554 | v 555 | ga 556 | x 557 | mn 558 | r 559 | 560 | :cf 561 | v 562 | aa 563 | ak 564 | x 565 | gh 566 | v 567 | ga 568 | x 569 | mn 570 | r 571 | 572 | :cg 573 | x 574 | gf 575 | v 576 | gk 577 | nk 578 | x 579 | kk 580 | v 581 | mi 582 | mc 583 | ka 584 | ca 585 | ac 586 | ai 587 | dl 588 | x 589 | mn 590 | r 591 | 592 | :ch 593 | x 594 | aa 595 | v 596 | na 597 | x 598 | gb "??? 599 | v 600 | gk 601 | x 602 | ak 603 | v 604 | nk 605 | x 606 | mn 607 | r 608 | 609 | :ci 610 | x 611 | md 612 | v 613 | mi 614 | x 615 | lf 616 | v 617 | af 618 | x 619 | ad 620 | v 621 | ai 622 | x 623 | mn 624 | r 625 | 626 | :cj 627 | x 628 | ka 629 | v 630 | mc 631 | mg 632 | ki 633 | ai "??? 634 | x 635 | ag 636 | v 637 | al "??? 638 | x 639 | mn 640 | r 641 | 642 | :ck 643 | x 644 | aa 645 | v 646 | na 647 | x 648 | ak 649 | v 650 | ia 651 | x 652 | mk 653 | v 654 | fe 655 | x 656 | mn 657 | r 658 | 659 | :cl 660 | x 661 | aa 662 | v 663 | ma 664 | mk 665 | x 666 | mn 667 | r 668 | 669 | :cm 670 | v 671 | aa 672 | hf 673 | ak 674 | nk 675 | x 676 | mn 677 | r 678 | 679 | :cn 680 | x 681 | ak 682 | v 683 | mk 684 | aa 685 | na 686 | x 687 | mn 688 | r 689 | 690 | :co 691 | x "??? 692 | ai 693 | v 694 | ch 695 | ei 696 | ck 697 | ai 698 | ac 699 | ca 700 | ka 701 | mc "??? 702 | mi 703 | kk 704 | ck 705 | x 706 | mn 707 | r 708 | 709 | :cp 710 | v 711 | aa 712 | ai 713 | ck 714 | ek 715 | gi 716 | ga 717 | x 718 | mn 719 | r 720 | 721 | :cq 722 | x 723 | mc 724 | v 725 | ka 726 | ca 727 | ac 728 | ai 729 | ck 730 | kk 731 | mi 732 | mc 733 | x 734 | jh 735 | v 736 | nl 737 | x 738 | mn 739 | r 740 | 741 | :cr 742 | v 743 | aa 744 | ai 745 | ck 746 | ek 747 | gi 748 | ga 749 | x 750 | mk 751 | v 752 | gf 753 | x 754 | mn 755 | r 756 | 757 | :cs 758 | x 759 | ka 760 | v 761 | mc 762 | mi 763 | kk 764 | ik 765 | gi 766 | gc 767 | ea 768 | ca 769 | ac 770 | ai 771 | dl 772 | x 773 | mn 774 | r 775 | 776 | :ct 777 | x 778 | aa 779 | v 780 | al 781 | x 782 | mf 783 | v 784 | af 785 | x 786 | mn 787 | r 788 | 789 | :cu 790 | x 791 | aa 792 | v 793 | ka 794 | mc 795 | ml "??? 796 | kk 797 | x 798 | ak 799 | v 800 | lk 801 | x 802 | mn 803 | r 804 | 805 | :cv 806 | x 807 | aa 808 | v 809 | mf 810 | x 811 | ak 812 | v 813 | mf 814 | x 815 | mn 816 | r 817 | 818 | :cw 819 | x 820 | aa 821 | v 822 | mc 823 | af 824 | x 825 | ak 826 | v 827 | mi 828 | af 829 | x 830 | mn 831 | r 832 | 833 | :cx 834 | v 835 | gf 836 | x 837 | ak 838 | v 839 | gf 840 | x 841 | aa 842 | v 843 | nl 844 | x 845 | mn 846 | r 847 | 848 | :cy 849 | x 850 | aa 851 | v 852 | if 853 | x 854 | ak 855 | v 856 | if 857 | nf 858 | x 859 | mn 860 | r 861 | 862 | :cz 863 | x 864 | aa 865 | v 866 | ak 867 | ma 868 | ml 869 | x 870 | mn 871 | r 872 | 873 | :c0 874 | x 875 | ck 876 | v 877 | ai 878 | ac 879 | ca 880 | ka 881 | mc 882 | mi 883 | kk 884 | ck 885 | x 886 | mn 887 | r 888 | 889 | :c1 890 | x 891 | ce 892 | v 893 | af 894 | mf 895 | x 896 | md 897 | v 898 | mi 899 | x 900 | mn 901 | r 902 | 903 | :c2 904 | x 905 | ca 906 | v 907 | ac 908 | ai 909 | ck 910 | ek 911 | gi 912 | gc 913 | ia 914 | ma 915 | ml "??? 916 | mc 917 | mi 918 | kk 919 | hk 920 | fi 921 | fc 922 | ha 923 | x 924 | mn 925 | r 926 | 927 | :c7 928 | x 929 | aa 930 | v 931 | ak 932 | nb 933 | x 934 | mn 935 | r 936 | 937 | :c8 938 | x 939 | gc 940 | v 941 | ea 942 | ca 943 | ac 944 | ai 945 | ck 946 | ek 947 | gi 948 | gc 949 | ia 950 | ka 951 | mc 952 | mi 953 | kk 954 | ik 955 | gi 956 | x 957 | mn 958 | r 959 | 960 | :c9 961 | x 962 | ka 963 | v 964 | mc 965 | mi 966 | kk 967 | ck 968 | ai 969 | ac 970 | ca 971 | fa 972 | hc 973 | hi 974 | fk 975 | x 976 | mn 977 | x 978 | mn 979 | r 980 | 981 | :c3 982 | x 983 | aa 984 | v 985 | ak 986 | fe 987 | fi 988 | hk 989 | kk 990 | mi 991 | mc 992 | x 993 | ka 994 | v 995 | nd 996 | x 997 | mn 998 | r 999 | 1000 | :c4 1001 | x 1002 | mh 1003 | v 1004 | ah 1005 | ia 1006 | ll 1007 | x 1008 | mn 1009 | r 1010 | 1011 | :c5 1012 | x 1013 | ak 1014 | v 1015 | aa 1016 | fa 1017 | fi 1018 | hk 1019 | kk 1020 | mi 1021 | mc 1022 | x 1023 | ka 1024 | v 1025 | nd 1026 | x 1027 | mn 1028 | r 1029 | 1030 | :c6 1031 | x 1032 | ck 1033 | v 1034 | ai 1035 | ac 1036 | ca 1037 | ka 1038 | 1039 | " The end of file seems abrupt, every other :cX section ends with: 1040 | " x 1041 | " mn 1042 | " r 1043 | -------------------------------------------------------------------------------- /cat.s: -------------------------------------------------------------------------------- 1 | " cat 2 | 3 | lac 017777 i 4 | sad d4 5 | jmp nofiles 6 | lac 017777 7 | tad d1 8 | tad d4 9 | dac name 10 | 11 | loop: 12 | sys open; name: 0; 0 13 | spa 14 | jmp badfile 15 | dac fi 16 | 17 | 1: 18 | jms getc 19 | sad o4 20 | jmp 1f 21 | jms putc 22 | jmp 1b 23 | 24 | 1: 25 | lac fi 26 | sys close 27 | 28 | loop1: 29 | -4 30 | tad 017777 i 31 | dac 017777 i 32 | sad d4 33 | jmp done 34 | lac name 35 | tad d4 36 | dac name 37 | jmp loop 38 | 39 | badfile: 40 | lac name 41 | dac 1f 42 | lac d8 43 | sys write; 1:0; 4 44 | lac d8 45 | sys write; 1f; 2 46 | jmp loop1 47 | 48 | 1: 040;077012 49 | nofiles: 50 | lac d8 51 | sys write; 1f; 5 52 | sys exit 53 | 54 | 1: ; 040; ;;;;;; 040; 012 153 | 154 | print: 0 155 | lmq 156 | law prbuf-1 157 | dac 8 158 | -6 159 | dac t6 160 | 1: 161 | cla 162 | llss 3 163 | tad o60 164 | dac i 8 165 | isz t6 166 | jmp 1b 167 | lac d1 168 | sys write; prbuf; 6 169 | jmp i print 170 | 171 | part2: 172 | lac icnt 173 | jmp print 174 | lac d1 175 | sys write; m3; m3s 176 | lac licnt 177 | jms print 178 | lac d1 179 | sys write; m4; m4s 180 | lac indircnt 181 | jms print 182 | lac d1 183 | sys write; m5; m5s 184 | lac blcnt 185 | jms print 186 | lac d1 187 | sys write; m6; m6s 188 | dzm blcnt 189 | 190 | -1 191 | tad nfblks i 192 | cma 193 | sma 194 | jmp 2f 195 | dac t1 196 | lac fblks 197 | dac t2 198 | 1: 199 | lac i t2 200 | jms dupcheck 201 | isz t2 202 | isz t1 203 | jmp 1b 204 | 205 | 2: 206 | lac nxfblk i 207 | 1: 208 | sna 209 | jmp part3 210 | dac t1 211 | jms dupcheck 212 | lac t1 213 | jms dskrd i 214 | jms copy i; dskbuf1: 0; ldskbuf; 64 215 | law ldskbuf 216 | dac t1 217 | -9 218 | dac t2 219 | 2: 220 | isz t1 221 | lac i t1 222 | jms dupcheck 223 | isz t2 224 | jmp 2b 225 | lac ldskbuf 226 | jmp 1b 227 | 228 | part3: 229 | lac blcnt 230 | jms print 231 | lac d1 232 | sys write; m7; m7s 233 | lac d709 234 | dac t1 235 | 1: 236 | isz t1 237 | lac t1 238 | sad d6400 239 | sys exit 240 | lrss 4 241 | tad usetabp 242 | dac t2 243 | cla 244 | llss 4 245 | tad alsscom 246 | dac 2f 247 | lac d1 248 | 2: alss 0 249 | dac bit 250 | lac i t2 251 | and bit 252 | sza 253 | jmp 1b 254 | lac t1 255 | jms print 256 | lac d1 257 | sys write; m8; m8s 258 | jmp 1b 259 | 260 | d1: 1 261 | d2: 2 262 | d4: 4 263 | d5: 5 264 | d6: 6 265 | d7: 7 266 | d8: 8 267 | d10: 10 268 | o60: 060 269 | o400000: 0400000 270 | o400001: 0400001 271 | o40: 040 272 | o200000: 0200000 273 | alsscom: alss 0 274 | d709: 709 275 | d6400: 6400 276 | 277 | m3: 278 | 040;;;;;;;;;012 288 | m6s = .-m6 289 | m7: 290 | 040;;;012 291 | m7s = .-m7 292 | m8: 293 | 040;;;;;040040;040040;040040 38 | d1: 1 39 | d4: 4 40 | d5: 5 41 | dm4: -4 -------------------------------------------------------------------------------- /cp.s: -------------------------------------------------------------------------------- 1 | " cp 2 | 3 | lac 017777 4 | tad d1 5 | dac name2 6 | loop: 7 | lac 017777 i 8 | sad d4 9 | sys exit 10 | sad d8 11 | jmp unbal 12 | tad dm8 13 | dac 017777 i 14 | lac name2 15 | tad d4 16 | dac name1 17 | tad d4 18 | dac name2 19 | sys open; name1: 0; 0 20 | spa 21 | jmp error 22 | lac o17 23 | sys creat; name2: 0 24 | spa 25 | jmp error 26 | dzm nin 27 | 28 | 1: 29 | lac bufp 30 | tad nin 31 | dac 0f 32 | -1 33 | tad nin 34 | cma 35 | tad d1024 36 | dac 0f+1 37 | lac d2 38 | sys read; 0:..;.. 39 | sna 40 | jmp 2f 41 | tad nin 42 | dac nin 43 | sad d1024 44 | jmp 2f 45 | jmp 1b 46 | 2: 47 | lac nin 48 | dac 2f 49 | lac d3 50 | sys write; buf; 2: 0 51 | dzm nin 52 | lac 2b 53 | sad d1024 54 | jmp 1b 55 | lac d2 56 | sys close 57 | lac d3 58 | sys close 59 | jmp loop 60 | error: 61 | lac name1 62 | dac 1f 63 | lac d1 64 | sys write; 1: 0; 4 65 | lac d1 66 | sys write; mes; 1 67 | lac name2 68 | dac 1f 69 | lac d1 70 | sys write; 1: 0; 4 71 | lac d1 72 | sys write; mes; 2 73 | jmp loop 74 | mes: 75 | 040000;077012 76 | unbal: 77 | lac name2 78 | tad d4 79 | dac 1f 80 | lac d1 81 | sys write; 1: 0; 4 82 | lac d1 83 | sys write; mes; 2 84 | sys exit 85 | 86 | d1: 1 87 | d4: 4 88 | d8: 8 89 | o17: 017 90 | dm8: -8 91 | d3: 3 92 | d1024: 1024 93 | nin: 0 94 | bufp: buf 95 | d2: 2 96 | 97 | buf: -------------------------------------------------------------------------------- /dmabs.s: -------------------------------------------------------------------------------- 1 | " dmabs 2 | 3 | lac o17 4 | sys creat; punout 5 | spa 6 | sys save 7 | dac fo 8 | lac 017777 9 | tad d1 10 | dac name 11 | jms space 12 | 100 13 | 14 | loop: 15 | dzm oldsum 16 | lac initcmd 17 | dac comand 18 | lac i 017777 19 | sad d4 20 | jmp stop 21 | tad dm4 22 | dac i 017777 23 | lac name 24 | tad d4 25 | dac name 26 | 27 | dump1: 28 | lac comand 29 | xor dactra 30 | dac tracmd 31 | 32 | dump2: 33 | sys open; name: 0; 0 34 | spa 35 | jmp opnerr 36 | dac fi 37 | -bootsiz 38 | dac c1 39 | law boot-1 40 | dac 8 41 | 1: 42 | lac i 8 43 | jms put 44 | isz c1 45 | jmp 1b 46 | lac bootcmd 47 | lrs 12 48 | jms put1 49 | lac bootcmd 50 | lrs 6 51 | jms put1 52 | lac bootcmd 53 | and o77 54 | xor o300 55 | jms put2 56 | 57 | jms space 58 | 3 59 | 60 | dump3: 61 | -1 62 | tad bufp 63 | dac 8 64 | -64 65 | dac c1 66 | 1: 67 | dzm i 8 68 | isz c1 69 | jmp 1b 70 | lac fi 71 | sys read; bufp: buf; 64 72 | sna 73 | jmp done 74 | dac count 75 | -1 76 | tad bufp 77 | dac 8 78 | -64 79 | dac c1 80 | cla 81 | 1: 82 | add i 8 83 | isz c1 84 | jmp 1b 85 | sna 86 | jmp dump4 87 | dac newsum 88 | lac comand 89 | jms put 90 | lac count 91 | jms put 92 | lac oldsum 93 | add comand 94 | add count 95 | jms put 96 | lac newsum 97 | dac oldsum 98 | jms space 99 | 3 100 | -1 101 | tad bufp 102 | dac 8 103 | -1 104 | tad count 105 | cma 106 | dac c1 107 | 1: 108 | lac i 8 109 | jms put 110 | isz c1 111 | jmp 1b 112 | jms space 113 | 10 114 | 115 | dump4: 116 | lac comand 117 | tad count 118 | dac comand 119 | jmp dump3 120 | 121 | done: 122 | lac tracmd 123 | jms put 124 | cla 125 | jms put 126 | lac oldsum 127 | add tracmd 128 | jms put 129 | jms space 130 | 20 131 | lac fi 132 | sys close 133 | jmp loop 134 | 135 | stop: 136 | cla 137 | jms put 138 | jms space 139 | 100 140 | sys exit 141 | 142 | space: 0 143 | -1 144 | tad i space 145 | cma 146 | dac c1 147 | isz space 148 | 1: 149 | lac o400 150 | jms put2 151 | isz c1 152 | jmp 1b 153 | jmp i space 154 | 155 | put: 0 156 | dac 1f 157 | lrs 12 158 | jms put1 159 | lac 1f 160 | lrs 6 161 | jms put1 162 | lac 1f 163 | jms put1 164 | jmp i put 165 | 1:0 166 | 167 | put1:0 168 | and o77 169 | xor o200 170 | jms put2 171 | jmp i put1 172 | 173 | put2: 0 174 | dac 1f 175 | lac fo 176 | sys write; 1f; 1 177 | jmp i put2 178 | 1: 0 179 | 180 | boot: 181 | org = 017740 182 | 2: 183 | jms get1-boot+org 184 | dac cmd-boot+org 185 | jms get1-boot+org 186 | cma 187 | dac cnt-boot+org 188 | jms get2-boot+org 189 | xor sum-boot+org 190 | dzm sum-boot+org 191 | cla cll sza 192 | hlt 193 | isz cnt-boot+org 194 | 1: 195 | jms get1-boot+org 196 | cmd: 0 197 | isz cmd-boot+org 198 | isz cnt-boot+org 199 | jmp 1b-boot+org 200 | jmp 2b-boot+org 201 | get1: 0 202 | jms get2-boot+org 203 | dac get2-boot+org 204 | add sum-boot+org 205 | dac sum-boot+org 206 | lac get2-boot+org 207 | jmp i get1-boot+org 208 | get2: 0 209 | iot 0144 210 | 1: 211 | iot 0101 212 | jmp 1b-boot+org 213 | iot 0112 214 | jmp i get2-boot+org 215 | sum: 0 216 | cnt = sum+1 217 | bootsiz = .-boot 218 | bootcmd: jmp org 219 | 220 | opnerr: 221 | lac name 222 | dac 1f 223 | lac d1 224 | sys write; 1: 0; 4 225 | lac d1 226 | sys write; mes; 2 227 | jmp loop 228 | mes: 229 | 040;077012 230 | 231 | comand: 0 232 | tracmd: 0 233 | d1: 1 234 | .17777: 017777 235 | o77: 077 236 | o200: 0200 237 | o300: 0300 238 | d4: 4 239 | d64: 64 240 | dm4: -4 241 | o400: 0400 242 | punout: ;;;040040 243 | o17: 017 244 | 245 | fi: 0 246 | fo: 0 247 | count: 0 248 | oldsum: 0 249 | newsum: 0 250 | daccmd: dac 251 | dactra: dac jmp 252 | initcmd: dac 0 253 | c1: 0 254 | buf: 255 | 256 | iot = 0700000 -------------------------------------------------------------------------------- /ds.s: -------------------------------------------------------------------------------- 1 | " ds 2 | 3 | lac 017777 i 4 | sad d8 5 | skp 6 | sys exit 7 | lac 017777 8 | tad d5 9 | dac .+3 10 | law 017 11 | sys creat; .. 12 | dac fo 13 | law 017 14 | sys creat; scrname 15 | spa; jms error 16 | dac fso 17 | sys open; scrname; 0 18 | spa; jms error 19 | dac fsi 20 | sys chdir; dd 21 | spa; jms error 22 | lac d1 23 | sys write; pass1; 1 24 | law fsobuf 25 | dac fsopt 26 | dzm nfiles 27 | law fbuf 28 | dac filp 29 | dzm ndirs 30 | law dbuf 31 | dac dirp 32 | dzm fsloc 33 | sys open; dotdot; 0 34 | spa; jms error 35 | dac fd 36 | jms readdir; dotdot 37 | law statbuf 38 | sys status; dotdot; dotdot 39 | spa; jms error 40 | lac statbuf+12 " i index 41 | dac dirp i 42 | isz dirp 43 | -1 44 | tad nfiles 45 | cma 46 | dac ddfiles 47 | law fbuf 48 | dac ddfilp 49 | 50 | loop: 51 | -1 52 | tad ndirs 53 | cma 54 | dac c1 55 | law dbuf 56 | dac i1 57 | 58 | 1: 59 | isz i1 60 | lac i1 i 61 | sad ddfilp i 62 | jmp 2f 63 | isz i1 64 | isz c1 65 | jmp 1b 66 | 67 | lac ddfilp 68 | tad i1 69 | dac i1 70 | lac i1 i 71 | dac .+3 72 | lac fsi 73 | sys seek; ..; 0 74 | lac fsi 75 | sys read; scrname; 4 76 | law statbuf 77 | sys status; dotdot; scrname 78 | spa; jms error 79 | lac statbuf+0 " flags 80 | and o20 81 | sna 82 | jmp 2f 83 | sys open; scrname; 0 84 | spa; jms error 85 | dac fd 86 | jms readdir; scrname 87 | lac ddfilp i 88 | dac dirp i 89 | isz dirp 90 | 91 | 2: 92 | isz ddfilp 93 | isz ddfilp 94 | isz ddfiles 95 | jmp loop 96 | 97 | " output phase 98 | 99 | lac fso 100 | sys write; fsobuf; 64 101 | lac d1 102 | sys write; pass2; 2 103 | -500 104 | dac c1 105 | 106 | 1: 107 | law dbuf+2 108 | dac i1 109 | dzm fflg 110 | law fbuf 111 | dac i2 112 | r1 113 | tad nfiles 114 | cma 115 | dac c2 116 | 117 | 2: 118 | lac c1 119 | tad d501 120 | sad i2 i 121 | skp 122 | jmp 3f 123 | -1 124 | tad i1 125 | dac i3 126 | iac i3 i 127 | dac c3 128 | law fbuf 129 | dac i3 130 | 0: 131 | lac i3 i 132 | sad c3 133 | jmp 0f 134 | isz i3 135 | isz i3 136 | jmp 0b 137 | 0: 138 | lac i3 139 | tad d1 140 | dac c3 141 | lac c3 i 142 | dac .+3 143 | lac fsi 144 | sys seek; ..; 0 145 | lac fsi 146 | sys read; scrname; 4 147 | lac i2 148 | tad d1 149 | dac c3 150 | lac c3 i 151 | dac .+3 152 | lac fsi 153 | sys seek; ..; 0 154 | lac fsi 155 | sys read; dd; 4 156 | lac fflg 157 | sza 158 | jmp 0f 159 | 160 | lac nlinkt 161 | sad nlinka 162 | skp 163 | jms fishy 164 | dzm nlinka 165 | law 012 166 | jms putc 167 | law statbuf 168 | sys status; scrname; dd 169 | spa; jms error 170 | -1 171 | tad statbuf+9 172 | cma 173 | dac nlinkt 174 | -1 175 | dac fflg 176 | jms longout 177 | law 012 178 | jms putc 179 | 0: 180 | isz nlinka 181 | jms putname; scrname 182 | jms putname; dd 183 | law 012 184 | jms putc 185 | 186 | 3: 187 | isz i2 188 | isz i2 189 | lac i2 190 | sad i1 i 191 | skp 192 | jmp .+3 193 | isz i1 194 | isz i1 195 | isz c2 196 | jmp 2b 197 | 198 | isz c1 199 | jmp 1b 200 | lac nlinkt 201 | sad nlinka 202 | skp 203 | jms fishy 204 | 205 | sys chdir; system 206 | jmp done 207 | 208 | fishy: 0 209 | jms asters 210 | jms asters 211 | law 012 212 | jms putc 213 | lac d1 214 | sys write; 1f; 1 215 | jmp fishy i 216 | 1: 052012 217 | 218 | nlinka: 0 219 | nlinkt: 0 220 | 221 | asters: 0 222 | -10 223 | dac c 224 | 1: 225 | law 052 226 | jms putc 227 | isz c 228 | jmp 1b 229 | jmp asters i 230 | 231 | longout: 0 232 | lac statbuf+12 " i 233 | jms octal; -3 234 | lac statbuf+0 " flags 235 | jms octal; -2 236 | lac statbuf+8 " uid 237 | jms octal; -2 238 | -1 239 | tad statbuf+9 " nlinks 240 | cma 241 | jms octal; -2 242 | lac statbuf+10 243 | jms octal; -5 244 | jmp longout i 245 | 246 | readdir: 0 247 | law 012 248 | jms putc 249 | law 012 250 | jms putc 251 | jms asters 252 | lac readdir i 253 | dac 5f 254 | dac .+2 255 | jms putname; .. 256 | jms asters 257 | law 012 258 | jms putc 259 | law 012 260 | jms putc 261 | isz readdir 262 | isz ndirs 263 | lac filp 264 | dac dirp i 265 | isz dirp 266 | 0: 267 | jms copyz; buf; 64 268 | lac fd 269 | sys read; buf; 64 270 | spa; jms error 271 | sna 272 | jmp 4f 273 | -8 274 | dac c1 275 | law buf 276 | dac i1 277 | 1: 278 | lac i1 i 279 | sna 280 | jmp 3f 281 | 282 | isz nfiles 283 | dac filp i 284 | isz filp 285 | lac fsloc 286 | dac filp i 287 | tad d4 288 | dac fsloc 289 | isz filp 290 | lac i1 291 | tad d1 292 | dac .+4 293 | law statbuf 294 | sys status; 5:..; .. 295 | spa; jms error 296 | jms longout 297 | lac i1 298 | tad d1 299 | dac .+2 300 | jms putname; .. 301 | law 012 302 | jms putc 303 | lac i1 304 | dac 8 305 | lac 8 i 306 | dac fsopt i 307 | isz fsopt 308 | lac 8 i 309 | dac fsopt i 310 | isz fsopt 311 | lac 8 i 312 | dac fsopt i 313 | isz fsopt 314 | lac 8 i 315 | dac fsopt i 316 | isz fsopt 317 | law fsobuf+64 318 | sad fsopt 319 | skp 320 | jmp 3f 321 | lac fso 322 | sys write; fsobuf; 64 323 | law fsobuf 324 | dac fsopt 325 | 326 | 3: 327 | law 8 328 | tad i1 329 | dac i1 330 | isz c1 331 | jmp 1b 332 | jmp 0b 333 | 4: 334 | lac fd 335 | sys close 336 | jmp readdir i 337 | 338 | putname: 0 339 | -1 340 | tad putname i 341 | dac 8 342 | -4 343 | dac c 344 | 1: 345 | lac 8 i 346 | lrss 9 347 | jms putc 348 | llss 9 349 | jms putc 350 | isz c 351 | jmp 1b 352 | isz putname 353 | jmp putname i 354 | 355 | octal: 0 356 | lmq 357 | lac d5 358 | tad octal i 359 | cma 360 | dac c 361 | 1: 362 | llss 3 363 | isz c 364 | jmp 1b 365 | lac octal i 366 | dac c 367 | 1: 368 | ecla llss 3 369 | tad o60 370 | jms putc 371 | isz c 372 | jmp 1b 373 | law 040 374 | jms putc 375 | isz octal 376 | jmp octal i 377 | 378 | error: 0 379 | -1 380 | tad error 381 | hlt 382 | sys save 383 | 384 | copyz: 0 385 | -1 386 | tad copyz i 387 | dac 8 388 | isz copyz 389 | -1 390 | tad copyz i 391 | cma 392 | dac 2f 393 | isz copyz 394 | 1: 395 | dzm 8 i 396 | isz 2f 397 | jmp 1b 398 | jmp copyz i 399 | 2: 0 400 | 401 | done: 402 | lac noc 403 | sna 404 | sys exit 405 | and d1 406 | sna cla 407 | jmp 1f 408 | jms putc 409 | jmp done 410 | 1: 411 | lac noc 412 | rcr 413 | dac 1f 414 | lac fo 415 | sys write; obuf; 1;.. 416 | sys exit 417 | 418 | putc: 0 419 | and o177 420 | dac 2f+1 421 | lac opt 422 | dac 2f 423 | add o400000 424 | dac opt 425 | spa 426 | jmp 1f 427 | lac 2f i 428 | xor 2f+1 429 | jmp 3f 430 | 1: 431 | lac 2f+1 432 | alss 9 433 | 3: 434 | dac 2f i 435 | isz noc 436 | lac noc 437 | sad d128 438 | skp 439 | jmp putc i 440 | lac fo 441 | sys write; obuf; 64 442 | lac iopt 443 | dac opt 444 | dzm noc 445 | jmp putc i 446 | 2: 0;0 447 | opt: obuf 448 | iopt: obuf 449 | noc: 0 450 | fo: 1 451 | 452 | d1: 1 453 | o177: 0177 454 | o400000: 0400000 455 | d128: 128 456 | d4: 4 457 | d5: 5 458 | d8: 8 459 | o60: 060 460 | o20: 020 461 | d501: 501 462 | 463 | dd: 464 |
; 040040; 040040; 040040 465 | dotdot: 466 | 056056; 040040; 040040; 040040 467 | system: 468 | ;;; 040040 469 | scrname: 470 | <*s>;;040040;040040 471 | pass2: 472 | [scan markup] 31 | jmp advanc 32 | 1: 33 | ; ; 012 34 | advanc: 35 | jms rline 36 | lac linep 37 | dac tal 38 | dzm adrflg 39 | jms addres 40 | jmp comand 41 | -1 42 | dac adrflg 43 | lac addr 44 | dac addr1 45 | dac addr2 46 | 1: 47 | lac char 48 | sad o54 49 | jmp 2f 50 | sad o73 51 | skp 52 | jmp chkwrp 53 | lac addr 54 | dac dot 55 | 2: 56 | jms addres 57 | jmp error 58 | lac addr2 59 | dac addr1 60 | lac addr 61 | dac addr2 62 | jmp 1b 63 | "[handwritten page number top right of scan - 2] 64 | chkwrp: 65 | -1 66 | tad addr1 67 | jms betwen; d1; addr2 68 | jmp error 69 | 70 | comand: 71 | lac char 72 | sad o141 73 | jmp ca 74 | sad o143 75 | jmp cc 76 | sad o144 77 | jmp cd 78 | sad o160 79 | jmp cp 80 | sad o161 81 | jmp cq 82 | sad o162 83 | jmp cr 84 | sad o163 85 | jmp cs 86 | sad o167 87 | jmp cw 88 | sad o12 89 | jmp cnl 90 | sad o75 91 | jmp ceq 92 | jmp error 93 | ca: 94 | jms newline 95 | jms setfl 96 | lac addr2 97 | dac dot 98 | ca1: 99 | jms rline 100 | lac line 101 | sad o56012 102 | jmp advanc 103 | jms append 104 | jmp ca1 105 | 106 | cc: cd: 107 | jms newline 108 | jms setdd 109 | lac addr1 110 | sad zerop 111 | jmp error 112 | dac dot 113 | tad dm1 114 | dac 9 115 | lac addr2 116 | dac 8 117 | 2: 118 | lac i 8 119 | dac i 9 120 | sza 121 | jmp 2b 122 | lac 9 123 | "[handwritten page number top right of scan - 3] 124 | dac eofp 125 | lac char 126 | sad o144 127 | jmp advanc 128 | -1 129 | tad dot 130 | dac dot 131 | jmp ca1 132 | 133 | cp: 134 | jms newline 135 | cp1: 136 | jms setdd 137 | lac addr1 138 | sad zerop 139 | jmp error 140 | 1: 141 | lac addr1 142 | dac dot 143 | lac i addr1 144 | jms gline 145 | dac 2f 146 | lac d1 147 | sys write; line; 2: 0 148 | lac addr1 149 | sad addr1 150 | jmp advanc 151 | tad d1 152 | dac addr1 153 | jmp 1b 154 | 155 | cq: 156 | jms newline 157 | lac adrflg 158 | sza 159 | jmp error 160 | sys exit 161 | 162 | cr: 163 | jms setfl 164 | lac addr2 165 | dac dot 166 | jms rname 167 | "------------> [scan markup] 168 | sys open; fbuf; 0 169 | spa 170 | jmp error 171 | dac tfi 172 | lac linep 173 | dac tal 174 | dzm num 175 | 1: 176 | lac tfi 177 | sys read; tbuf; 64 178 | sza 179 | jmp 2f 180 | lac tfi 181 | sys close 182 | jms number 183 | jmp advanc 184 | 2: 185 | cma 186 | "[handwritten page number top right of scan - 4] 187 | tad d1 188 | rcl 189 | dac c1 190 | lac tbufp 191 | dac tal1 192 | 2: 193 | jms getsc; tal1 194 | sna 195 | jmp 3f 196 | jms putsc; tal 197 | isz num 198 | sad o12 199 | skp 200 | jmp 3f 201 | lac tal 202 | add o400000 203 | and o17777 204 | cma 205 | tad linep 206 | cma 207 | dac linsiz 208 | jms append 209 | lac linep 210 | dac tal 211 | 3: 212 | isz c1 213 | jmp 2b 214 | jmp 1b 215 | cw: 216 | jms setfl 217 | lac i addr1 218 | sna 219 | jmp error 220 | jms rname 221 | lac o17 222 | sys creat; fbuf 223 | spa 224 | jmp error 225 | dac tfi 226 | -128 227 | dac c2 228 | lac tbufp 229 | dac tal1 230 | dzm num 231 | 1: 232 | lac i addr1 233 | jms gline 234 | rcl 235 | cma 236 | tad d1 237 | dac c1 238 | lac linep 239 | dac tal 240 | 2: 241 | jms getsc; tal 242 | sna 243 | jmp 3f 244 | isz num 245 | jmp putsc; tal1 246 | isz c2 247 | "[handwritten page number top right of scan - 5] 248 | jmp 3f 249 | lac tfi 250 | sys write; tbuf; 64 251 | -128 252 | dac c2 253 | lac tbufp 254 | dac tal1 255 | 3: 256 | isz c1 257 | jmp 2b 258 | lac addr1 259 | sad addr2 260 | jmp 1f 261 | isz addr1 262 | jmp 1b 263 | 1: 264 | lac tal1 265 | sma cla 266 | jmp 1f 267 | jms putsc; tal1 268 | 1: 269 | -1 270 | tad tbufp 271 | cma 272 | tad tal1 273 | dac 1f 274 | lac tfi 275 | sys write; tbuf; 1: 0 276 | lac tfi 277 | sys close 278 | jms number 279 | jmp advanc 280 | 281 | cnl: 282 | lac adrflg 283 | sna 284 | jmp 1f 285 | lac addr2 286 | dac addr1 287 | jmp cp1 288 | 1: 289 | lac dot 290 | tad d1 291 | sad eofp 292 | jmp error 293 | dac dot 294 | jmp cp1 295 | 296 | ceq: 297 | jms newline 298 | jms setfl 299 | lac addr2 300 | dac dot 301 | cma 302 | tad zerop 303 | cma 304 | dac num 305 | jms number 306 | jmp advanc 307 | 308 | setdd: 0 309 | "[handwritten page number top right of scan - 6] 310 | lac adrflg 311 | sza 312 | jmp i setdd 313 | lac dot 314 | dac addr1 315 | dac addr2 316 | jmp i setdd 317 | 318 | setfl: 0 319 | lac adrflg 320 | sza 321 | jmp i setfl 322 | lac zerop 323 | tad d1 324 | dac addr1 325 | -1 326 | tad eofp 327 | dac addr2 328 | jmp i setfl 329 | 330 | newline: 0 331 | jms getsc; tal 332 | sad o12 333 | jmp i newline 334 | jmp error 335 | 336 | addres: 0 337 | dzm minflg "..) [stray scan mark?] 338 | -1 339 | dac addr 340 | ad1: 341 | jms getsc; tal 342 | ad2: 343 | jms betwen; d47; d58 344 | skp 345 | jmp numb 346 | sad o40 "[o40 circled in scan] 347 | jmp ad1 "[hand drawn check mark follows operand in scan] 348 | sad o11 349 | jmp ad1 "[hand drawn check mark follows operand in scan] 350 | "[check mark underlined in scan] 351 | sad o55 352 | jmp amin "[hand drawn check mark follows operand in scan] 353 | sad o56 354 | jmp adot "[hand drawn check mark follows operand in scan] 355 | sad o53 356 | jmp ad1 "[hand drawn check mark follows operand in scan] 357 | sad o44 358 | jmp adol "[hand drawn check mark follows operand in scan] 359 | sad o57 360 | jmp fsrch "[hand drawn check mark follows operand in scan] 361 | sad o77 362 | jmp bsrch "[hand drawn check mark follows operand in scan] 363 | dac char 364 | lac minflg 365 | sza 366 | jmp error 367 | lac addr 368 | sma 369 | isz addres 370 | jmp i addres 371 | "[handwritten page number top right of scan - 7] 372 | adot: 373 | lac minflg 374 | sza 375 | jmp error 376 | lac addr 377 | sma 378 | jmp error 379 | lac dot 380 | dac addr 381 | jmp ad1 382 | 383 | adol: 384 | lac minflg 385 | sza 386 | jmp error 387 | lac addr 388 | sma 389 | jmp error 390 | -1 391 | tad eofp 392 | dac addr 393 | jmp ad1 394 | 395 | amin: 396 | -1 397 | dac minflg 398 | jmp ad1 399 | 400 | numb: 401 | dac char 402 | sad o60 403 | jmp 1f 404 | lac d10 405 | jmp 2f 406 | 1: 407 | lac d8 408 | 2: 409 | dac 2f 410 | dzm num 411 | 1: 412 | lac num 413 | cll; mul; 2: 0 414 | lacq 415 | tad char 416 | tad dm48 417 | dac num 418 | jms getsc; tal 419 | dac char 420 | jms betwen; d47; d58 421 | skp 422 | jmp 1b 423 | lac minflg 424 | sna 425 | jmp 1f 426 | -1 427 | tad num 428 | cma 429 | dac num 430 | dzm minflg 431 | 1: 432 | lac addr 433 | "[handwritten page number top right of scan - 8] 434 | spa 435 | lac zerop 436 | tad num 437 | dac addr 438 | jms betwen; zermp; eofp 439 | jmp error 440 | lac char 441 | jmp ad2 442 | 443 | number: 0 444 | lac d100000 445 | dac n1 446 | law tbuf-1 447 | dac 8 448 | n0: 449 | lac num 450 | cll; idiv; n1: 0 451 | dac num 452 | lacq 453 | tad d48 454 | dac i 8 455 | lac n1 456 | cll; idiv; 10 457 | lacq 458 | dac n1 459 | sza 460 | jmp n0 461 | lac o12 462 | dac i 8 463 | law tbuf-1 464 | dac 8 465 | dac 9 466 | -5 467 | dac n1 468 | n2: 469 | lac i 8 470 | sad d48 471 | skp 472 | jmp n3 473 | dzm i 9 474 | isz n1 475 | jmp n2 476 | n3: 477 | lac d1 478 | sys write; tbuf; 7 479 | jmp i number 480 | 481 | rname: 0 482 | lac fbufp 483 | dac tal1 484 | -8 485 | dac c1 486 | 1: 487 | jms getsc; tal 488 | sad o40 489 | jmp 1b 490 | sad o12 491 | jmp 1f 492 | jms putsc; tal1 493 | isz c1 494 | jmp 1b 495 | "[handwritten page number top right of scan - 9] 496 | jmp i rname 497 | 1: 498 | lac tal1 499 | sad fbufp 500 | skp 501 | jmp 1f 502 | lac fbuf 503 | sna 504 | jmp error 505 | jmp i rname 506 | 1: 507 | lac o40 508 | jms putsc; tal1 509 | isz c1 510 | jmp 1b 511 | jmp i rname 512 | 513 | gline: 0 514 | dac glint1 515 | jms getdsk 516 | lac glint1 " [these 6 lines were surrounded by a box 517 | and o1777 " that was Xed out with an arrow pointing to it]: 518 | tad dskbfp " -- 519 | dac ital "|\/| 520 | lac linep "|/\|<--- 521 | dac otal " -- 522 | 1: 523 | lac ital 524 | sad edskbfp 525 | skp 526 | jmp 2f 527 | lac diskin 528 | tad d1024 529 | jms getdsk 530 | lac dskbfp 531 | dac ital 532 | 2: 533 | jms getsc; ital 534 | jms putsc; otal 535 | sad o12 536 | skp 537 | jmp 1b 538 | lac otal 539 | sma 540 | jmp 1f 541 | cla 542 | jms putsc; otal 543 | 1: 544 | lac linpm1 545 | cma 546 | tad otal 547 | jmp i gline 548 | 549 | rline: 0 550 | lac linep 551 | dac tal 552 | 553 | 1: 554 | cla 555 | sys read; char; 1 556 | lac char 557 | "[handwritten page number top right of scan - 10] 558 | lrss 9 559 | jms esc 560 | lac char 561 | and o777 562 | jms esc 563 | jmp 1b 564 | 565 | esc: 0 566 | sna 567 | jmp i esc 568 | jms putsc; tal 569 | sad o12 570 | jmp 2f 571 | sad o100 572 | jmp 1f 573 | sad o43 574 | skp 575 | jmp i esc 576 | -1 577 | tad tal 578 | dac tal 579 | and o17777 580 | sad linpm1 581 | jmp 1f 582 | jmp i esc 583 | 584 | 1: 585 | lac linep 586 | dac tal 587 | jmp i esc 588 | 589 | 2: 590 | lac tal 591 | sma cla 592 | jmp 1f 593 | jms putsc; tal 594 | 1: 595 | -1 596 | tad linep 597 | cma 598 | tad tal 599 | dac linsiz 600 | jmp i rline 601 | 602 | getsc: 0 603 | lac i getsc 604 | dac sctalp 605 | isz getsc 606 | lac i sctalp 607 | dac sctal 608 | add o400000 609 | dac i sctalp 610 | ral 611 | lac i sctal 612 | szl 613 | lrss 9 614 | and o777 615 | jmp i getsc 616 | 617 | putsc: 0 618 | and o777 619 | "[handwritten page number top right of scan - 11] 620 | lmq 621 | lac i putsc 622 | dac sctalp 623 | isz putsc 624 | lac i sctalp 625 | dac sctal 626 | add o400000 627 | dac i sctalp 628 | sma cla 629 | jmp 1f 630 | llss 27 631 | dac i sctal 632 | lrss 9 633 | jmp i putsc 634 | 635 | 1: 636 | lac i sctal 637 | and o777000 638 | omq 639 | dac i sctal 640 | lacq 641 | jmp i putsc 642 | 643 | append: 0 644 | -1 645 | tad eofp 646 | dac 8 647 | cma 648 | tad dot 649 | dac apt1 650 | 1: 651 | lac i 8 652 | dac i 8 653 | -3 654 | tad 8 655 | dac 8 656 | isz apt1 657 | jmp 1b 658 | isz eofp 659 | dzm i eofp 660 | isz dot 661 | jms addline 662 | jmp i append 663 | 664 | addline: 0 665 | lac dskadr 666 | dac i dot 667 | jms getdsk "[line crossed out - scan markup] 668 | -1 669 | tad linsiz 670 | cma 671 | dac apt1 672 | law line-1 673 | dac 8 674 | lac dskadr "[line crossed out - scan markup] 675 | and o1777 "[line crossed out - scan markup] 676 | tad dskbfp "[line crossed out - scan markup] 677 | dac otal "[line crossed out - scan markup] 678 | lac dskadr "[line crossed out - scan markup] 679 | tad linsiz "[line crossed out - scan markup] 680 | dac dskadr "[line crossed out - scan markup] 681 | "[handwritten page number top right of scan - 12] 682 | 1: 683 | lac otal " [these 9 lines were surrounded by a box 684 | sad edskbfp " that was Xed out]: 685 | skp " -- 686 | jmp 2f "|\/| 687 | lac diskin "|/\| 688 | tad d1024 " -- 689 | jms getdsk " 690 | lac dskbfp " 691 | dac otal " 692 | 2: "[line crossed out - scan markup] 693 | lac i 8 694 | dac i otal "[line crossed out and a note that looks like *jms prtwrd*] 695 | isz otal 696 | dzm wrflg "[line crossed out - scan markup] 697 | isz apt1 698 | jmp 1b 699 | jmp i addline 700 | 701 | 702 | getdsk: 0 "[the entire getdsk procedure was surrounded 703 | and o776000 " by a box that was Xed out]: 704 | sad diskin " -- 705 | jmp i getdsk "|\/| 706 | dac 2f "|/\| 707 | lac wrflg " -- 708 | sza " 709 | jmp 3f " 710 | lac diskin " 711 | dac 1f " 712 | lac sfo " 713 | sys seek; 1: 0; 0 " 714 | lac sfo " 715 | sys write; dskbuf; 1024 " 716 | lac d1 " 717 | dac wrflg " 718 | 3: " 719 | lac 2f " 720 | dac diskin " 721 | lac sfi " 722 | sys seek; 2: 0; 0 " 723 | spa " 724 | jmp i getdsk " 725 | lac sfi " 726 | sys read; dskbuf; 1024 " 727 | jmp i getdsk " 728 | 729 | betwen: 0 730 | dac bett1 731 | lac i betwen 732 | dac bett2 733 | isz betwen 734 | lac i bett2 735 | cma 736 | tad bett1 737 | spa 738 | jmp 1f 739 | lac i betwen 740 | dac bett2 741 | isz betwen 742 | -1 743 | tad i bett2 744 | "[handwritten page number top right of scan - 13] 745 | cma 746 | tad bett1 747 | spa 748 | 1: 749 | isz betwen 750 | lac bett1 751 | jmp i betwen 752 | 753 | error: 754 | lac d1 755 | sys write; 1f; 1 756 | jmp advanc 757 | 1: 758 | 077012 759 | -------------------------------------------------------------------------------- /ed2.s: -------------------------------------------------------------------------------- 1 | "[handwritten page number top right of scan - 14] 2 | " ed2 3 | 4 | cs: 5 | jms getsc; tal 6 | sad o40 7 | jmp cs 8 | sad o12 9 | jmp error 10 | dac delim 11 | jms compile 12 | lac tbufp 13 | dac tal1 14 | 1: 15 | jms getsc; tal 16 | sad delim 17 | jmp 1f 18 | sad o12 19 | jmp error 20 | jms putsc; tal1 21 | jmp 1b 22 | 1: 23 | lac o12 24 | jms putsc; tal1 25 | jms newline 26 | jms setdd 27 | lac addr1 28 | sad zerop 29 | jmp error 30 | 1: 31 | dac addr1 32 | lac i addr1 33 | jms execute 34 | jmp 2f 35 | lac addr1 36 | dac dot 37 | law line-1 38 | dac 8 39 | law nlist-1 40 | dac 9 41 | -64 42 | dac c1 43 | 3: 44 | lac i 8 45 | dac i 9 46 | isz c1 47 | jmp 3b 48 | -1 49 | tad fchrno 50 | dac linsiz 51 | rcr 52 | szl 53 | xor o400000 54 | tad linep 55 | dac tal1 56 | lac tbufp 57 | dac tal 58 | 3: 59 | jms getsc; tal 60 | sad o12 61 | jmp 3f 62 | jms putsc; tal1 63 | isz linsiz 64 | "[handwritten page number top right of scan - 15] 65 | jmp 3b 66 | 3: 67 | -1 68 | tad lchrno 69 | rcr 70 | szl 71 | xor o400000 72 | tad nlistp 73 | dac tal 74 | 3: 75 | jms getsc; tal 76 | jms putsc; tal1 77 | isz linsiz 78 | sad o12 79 | skp 80 | jmp 3b 81 | jms addline 82 | 2: 83 | lac addr1 84 | sad addr2 85 | jmp advanc 86 | tad d1 87 | jmp 1b 88 | 89 | fsrch: 90 | dac delim 91 | jms compile 92 | jms srcsav 93 | lac dot 94 | floop: 95 | tad d1 96 | dac addr 97 | lac i addr 98 | sza 99 | jmp 1f 100 | lac zerop 101 | dac addr 102 | jmp 2f 103 | 1: 104 | jms execute 105 | jmp 2f 106 | jms srcres 107 | jmp ad1 108 | 2: 109 | lac addr 110 | sad dot 111 | jmp error 112 | jmp floop 113 | 114 | bsrch: 115 | dac delim 116 | jms compile 117 | jms srcsav 118 | lac dot 119 | sad zerop 120 | lac eofp 121 | bloop: 122 | tad dm1 123 | dac addr 124 | lac i addr 125 | "[handwritten page number top right of scan - 16] 126 | sza 127 | jmp 1f 128 | lac eofp 129 | dac addr 130 | jmp 2f 131 | 1: 132 | jms execute 133 | jmp 2f 134 | jms srcres 135 | jmp ad1 136 | 2: 137 | lac addr 138 | sad dot 139 | jmp error 140 | jmp bloop 141 | 142 | srcsav: 0 143 | lac minflg 144 | sza 145 | jmp error 146 | lac addr 147 | sma 148 | jmp error 149 | law line-1 150 | dac 8 151 | law tbuf-1 152 | dac 9 153 | -64 154 | dac c1 155 | 1: 156 | lac i 8 157 | dac i 9 158 | isz c1 159 | jmp 1b 160 | jmp i srcsav 161 | 162 | srcres: 0 163 | law tbuf-1 164 | dac 8 165 | law line-1 166 | dac 9 167 | -64 168 | dac c1 169 | 1: 170 | lac i 8 171 | dac i 9 172 | isz c1 173 | jmp 1b 174 | jmp i srcres 175 | 176 | compile: 0 177 | law compbuf-1 178 | dac 8 179 | dzm prev 180 | dzm compflg 181 | 182 | cadvanc: 183 | jms getsc; tal 184 | sad delim 185 | jmp cdone 186 | dac compflg 187 | "[handwritten page number top right of scan - 17] 188 | dzm lastre 189 | sad o12 190 | jmp error 191 | "sad o133 192 | "jmp chrcls 193 | sad o136 194 | jmp beglin 195 | sad o44 196 | jmp endlin 197 | "sad o52 198 | "jmp clsure 199 | dac 1f 200 | jmp comp 201 | 1; jms matchar; 1: 0; 0 202 | jmp cadvanc 203 | 204 | cdone: 205 | lac compflg 206 | sna 207 | jmp 1f 208 | dac lastre 209 | jms comp 210 | 1; jms found; 0 211 | jmp i compile 212 | 1: "??? 213 | lac lastre 214 | sna 215 | jmp error 216 | jmp i compile 217 | 218 | chrcls: 219 | jmp error 220 | 221 | beglin: "??? 222 | jms comp 223 | 1; jms matbol; 0 224 | dzm prev 225 | jmp cadvanc 226 | 227 | endlin: "??? 228 | jms comp 229 | 1; jms mateol; 0 230 | dzm prev 231 | jmp cadvanc 232 | 233 | clsure: 234 | lac prev 235 | sna 236 | jmp error 237 | tad d1 238 | dac 1f 239 | jms comp 240 | 1; jms matclo; 1: 0; 0 241 | dzm prev 242 | jmp cadvanc 243 | 244 | comp: 0 "??? 245 | -1 246 | tad comp 247 | dac 9 248 | lac 8 249 | "[handwritten page number top right of scan - 18] 250 | dac prev 251 | 1: "??? 252 | lac i 9 253 | sna 254 | jmp i 9 255 | dac i 8 256 | jmp 1b 257 | 258 | execute: 0 259 | jms gline 260 | lac linep 261 | dac tal1 262 | dzm charno 263 | dzm fchrno 264 | dzm lchrno 265 | lac jmpclist 266 | dac trvect 267 | lac jmpnlist 268 | dac trvect+1 269 | lac jmpxchg 270 | dac i trvect+1 271 | jmp 1f 272 | 273 | xchg: 274 | lacq 275 | sad o12 276 | jmp i execute 277 | lac jmpxchg 278 | dac i 8 279 | 1: "??? 280 | lac trvect 281 | lmq 282 | lac trvect+1 283 | dac trvect 284 | lacq 285 | dac trvect+1 286 | tad dm1 287 | dac 8 288 | jms getsc; tal1 289 | lmq 290 | isz charno 291 | jms compbuf 292 | charno: 293 | 0 294 | trvect: 295 | 0;0 296 | 297 | matchar: 0 "??? 298 | -2 299 | tad matchar 300 | dac exret 301 | lac i exret 302 | dac exret 303 | lacq 304 | sad i matchar 305 | skp 306 | jmp 1f 307 | lac matchar 308 | and o17777 309 | tad jms1 310 | dac i 8 311 | "[handwritten page number top right of scan - 19] 312 | lac i exret 313 | dac i 8 314 | 1: "??? 315 | isz exret 316 | jmp i exret 317 | 318 | found: 0 319 | -2 320 | tad found 321 | dac exret 322 | lac i exret 323 | dac exret 324 | lac fchrno 325 | sza 326 | jmp 1f 327 | isz execute 328 | jmp 2f 329 | 1: "??? 330 | sad i exret 331 | jmp 1f 332 | cma 333 | tad i exret 334 | spa 335 | jmp 2f 336 | jmp 3f 337 | 1: "??? 338 | lac charno 339 | cma 340 | tad charno 341 | spa 342 | jmp 3f 343 | 2: "??? 344 | lac i exret 345 | dac fchrno 346 | lac charno 347 | dac lchrno 348 | 3: "??? 349 | isz exret 350 | jmp i exret 351 | 352 | matbol: 0 "??? 353 | lac charno 354 | sad d1 355 | jmp 1f 356 | lac matbol 357 | jmp 2f 358 | 1: "??? 359 | lac matbol 360 | jmp 3f 361 | 362 | mateol: 0 "??? 363 | lacq 364 | sad o12 365 | jmp 1f 366 | lac mateol 367 | 2: "??? 368 | tad dm2 369 | dac exret 370 | lac i exret 371 | dac 9 372 | jmp i 9 373 | "[handwritten page number top right of scan - 20] 374 | 1: "??? 375 | lac mateol 376 | 3: "??? 377 | tad dm3 378 | dac 9 379 | lac i 9 380 | isz 9 381 | dac i 9 382 | jmp i 9 383 | 384 | matclo: 0 "??? 385 | -2 386 | tad matclo 387 | dac exret 388 | lac i exret 389 | dac cloret 390 | lac i cloret 391 | dac 1f 392 | dac 2f 393 | lac i matclo 394 | dac exret 395 | jms i exret; 1: 0 396 | isz matclo 397 | jms i matclo; 2: 0 398 | isz cloret 399 | jmp i cloret 400 | 401 | "??? the remainder of this scan had an unreadable first character 402 | "??? I did the best I could to recreate the characters appropriately 403 | d1: 1 404 | o133: 0133 405 | dm3: -3 406 | o136: 0136 407 | dm2: -2 408 | o52: 052 409 | o57: 057 410 | o77: 077 411 | o40: 040 412 | o12: 012 413 | d47: 47 414 | d58: 58 415 | dm48: -48 416 | d10: 10 417 | d8: 8 418 | d48: o60: 060 419 | d100000: 100000 420 | o44: 044 421 | o53: 053 422 | o56: 056 423 | o55: 055 424 | o11: 011 425 | o400000: 0400000 426 | o17777: 017777 427 | o144: 0144 428 | dm1: -1 429 | o56012: 056012 430 | o777: 0777 431 | o100: 0100 432 | o43: 043 433 | o777000: 0777000 434 | o75: 075 435 | o167: 0167 436 | o161: 0161 437 | "[handwritten page number top right of scan - 21] 438 | o160: 0160 439 | o143: 0143 440 | o141: 0141 441 | o1777: 01777 442 | d1024: 1024 443 | o776000: 0776000 444 | o162: 0162 445 | o163: 0163 446 | o73: 073 447 | o54: 054 448 | o17: 017 449 | 450 | tname: 451 | 0145056;0164155;0160040;040040 452 | tbufp: tbuf 453 | linep: line 454 | nlistp: nlist 455 | fbufp: fbuf 456 | dskbfp: dskbuf "[line crossed out - scan markup] 457 | edskbfp: dskbuf+1024 "[line crossed out - scan markup] 458 | lnodp: lnodes 459 | linpm1: line-1 460 | jmpclist: jmp clist 461 | jmpnlist: jmp nlist 462 | jmpxchg: jmp xchg 463 | jms1: jms 1 464 | tal: .=.+1 465 | exret: .=.+1 466 | cloret: .=.+1 467 | delim: .=.+1 468 | prev: .=.+1 469 | compflg: .=.+1 470 | tal1: .=.+1 471 | c1: .=.+1 472 | ital: .=.+1 473 | otal: .=.+1 474 | diskin: .=.+1 475 | glint1: .=.+1 476 | c2: .=.+1 477 | num: .=.+1 478 | zermp: .=.+1 479 | minflg: .=.+1 480 | adrflg: .=.+1 481 | dot: .=.+1 482 | addr: .=.+1 483 | addr1: .=.+1 484 | addr2: .=.+1 485 | eofp: .=.+1 486 | zerop: .=.+1 487 | dskadr: .=.+1 488 | linsiz: .=.+1 489 | tfi: .=.+1 490 | fchrno: .=.+1 491 | lchrno: .=.+1 492 | lastre: .=.+1 493 | bett1: .=.+1 494 | bett2: .=.+1 495 | wrflg: .=.+1 496 | apt1: .=.+1 497 | sfi: .=.+1 498 | "[handwritten page number top right of scan - 22] 499 | sfo: .=.+1 500 | sctal: .=.+1 501 | sctalp: .=.+1 502 | char: .=.+1 503 | fbuf: .=.+4 "not sure if this is fbuf, but 504 | tbuf: .=.+64 "there is a write; tbuf; 64 call 505 | line: .=.+64 506 | nlist: .=.+50 507 | clist: .=.+50 508 | compbuf: .=.+100 509 | dskbuf: .=.+1 "[line crossed out - scan markup] 510 | lnodes: .=.+1000 511 | -------------------------------------------------------------------------------- /ind.b: -------------------------------------------------------------------------------- 1 | main $( 2 | extrn read, write; 3 | auto i, c, state, line 100; 4 | 5 | loop: 6 | state = i = 0; 7 | loop1: 8 | c = read(); 9 | if(c==4) return; 10 | if(c==':' & state==0) state = 2; 11 | if((c<'0' ^ c>'9'&c<'a' ^ c>'z') & state==0) state = 1; 12 | line[i] = c; 13 | i = i+1; 14 | if(c!=012) goto loop1; 15 | if(state==2 ^ i==1) goto noi; 16 | write(' '); 17 | write(' '); 18 | noi: 19 | i = 0; 20 | loop3: 21 | c = line[i]; 22 | write(c); 23 | i = i+1; 24 | if(c!=012) goto loop3; 25 | goto loop; 26 | $) 27 | -------------------------------------------------------------------------------- /init.s: -------------------------------------------------------------------------------- 1 | " init 2 | 3 | -1 4 | sys intrp 5 | jms init1 6 | jms init2 7 | 1: 8 | sys rmes 9 | sad pid1 10 | jmp 1f 11 | sad pid2 12 | jms init2 13 | jmp 1 14 | 1: 15 | jms init1 16 | jmp 1 17 | 18 | init1: 0 19 | sys fork 20 | jmp 1f 21 | sys open; ttyin; 0 22 | sys open; ttyout; 1 23 | jmp login 24 | 1: 25 | dac pid1 26 | jmp init1 i 27 | 28 | init2: 0 29 | sys fork 30 | jmp 1f 31 | sys open; keybd; 0 32 | sys open; displ; 1 33 | jmp login 34 | 1: 35 | dac pid2 36 | jmp init2 i 37 | 38 | login: 39 | -1 40 | sys intrp 41 | sys open; password; 0 42 | lac d1 43 | sys write; m1; m1s 44 | jms rline 45 | lac ebufp 46 | dac tal 47 | 1: 48 | jms gline 49 | law ibuf-1 50 | dac 8 51 | law obuf-1 52 | dac 9 53 | 2: 54 | lac 8 i 55 | sac o12 56 | lac o72 57 | sad 9 i 58 | skp 59 | jmp 1b 60 | sad o72 61 | skp 62 | jmp 2b 63 | lac 9 i 64 | sad o72 65 | jmp 1f 66 | -1 67 | tad 9 68 | dac 9 69 | lac d1 70 | sys write; m3; m3s 71 | jms rline 72 | law ibuf-1 73 | dac 8 74 | 2: 75 | lac 8 i 76 | sad o12 77 | lac o72 78 | sad 9 i 79 | skp 80 | jmp error 81 | sad o72 82 | skp 83 | jmp 2b 84 | 1: 85 | dzm nchar 86 | law dir-1 87 | dac 8 88 | 1: 89 | lac 9 i 90 | sad o72 91 | jmp 1f 92 | dac char 93 | lac nchar 94 | sza 95 | jmp 2f 96 | lac char 97 | alss 9 98 | xor o40 99 | dac 8 i 100 | dac nchar 101 | jmp 1b 102 | 2: 103 | lac 8 104 | dac nchar 105 | lac nchar i 106 | and o777000 107 | xor char 108 | dac nchar i 109 | dzm nchar 110 | jmp 1b 111 | 1: 112 | dzm nchar 113 | 1: 114 | lac 9 i 115 | sad o12 116 | jmp 2f 117 | tad om60 118 | lmq 119 | lac nchar 120 | cll; als 3 121 | omq 122 | dac nchar 123 | jmp 1b 124 | 2: 125 | lac nchar 126 | sys setuid 127 | sys chdir; dd 128 | sys chdir; dir 129 | 130 | lac d2 131 | sys close 132 | sys open; sh; 0 133 | sma 134 | jmp 1f 135 | sys link; system; sh; sh 136 | spa 137 | jmp error 138 | sys open; sh; 0 139 | spa 140 | jmp error 141 | sys unlink; sh 142 | 1: 143 | law 017700 144 | dac 9 145 | law boot-1 146 | dac 8 147 | 1: 148 | lac 8 i 149 | dac 9 i 150 | sza 151 | jmp 1b 152 | jmp 017701 153 | 154 | boot: 155 | lac d2 156 | lmq 157 | sys read; 4096; 07700 158 | lacq 159 | sys close 160 | jmp 4096 161 | 0 162 | 163 | rline: 0 164 | law ibuf-1 165 | dac 8 166 | 1: 167 | cla 168 | sys read; char; 1 169 | lac char 170 | lrss 9 171 | sad o100 172 | jmp rline+1 173 | sad o43 174 | jmp 2f 175 | dac 8 i 176 | sad o12 177 | jmp rline i 178 | jmp 1b 179 | 2: 180 | law ibuf-1 181 | sad 8 182 | jmp 1b 183 | -1 184 | tad 8 185 | dac 8 186 | jmp 1b 187 | 188 | gline: 0 189 | law obuf-1 190 | dac 8 191 | 1: 192 | jms gchar 193 | dac 8 i 194 | sad o12 195 | jmp gline i 196 | jmp 1b 197 | 198 | gchar: 0 199 | lac tal 200 | sad ebufp 201 | jmp 1f 202 | ral 203 | lac tal i 204 | snl 205 | lrss 9 206 | and o777 207 | lmq 208 | lac tal 209 | add o400000 210 | dac tal 211 | lacq 212 | sna 213 | jmp gchar+1 214 | jmp gchar i 215 | 1: 216 | lac bufp 217 | dac tal 218 | 1: 219 | dzm tal i 220 | isz tal 221 | lac tal 222 | sad ebufp 223 | skp 224 | jmp 1b 225 | lac bufp 226 | dac tal 227 | lac d2 228 | sys tead; buf; 64 229 | sna 230 | jmp error 231 | jmp gchar+1 232 | 233 | error: 234 | lac d1 235 | sys write; m2; m2s 236 | lac d1 237 | sys smes 238 | sys exit 239 | 240 | m1: 241 | 012; ;;;;;;<: 040 248 | m3s = .-m3 249 | dd: 250 |
;040040;040040;040040 251 | dir: 252 | 040040;040040;040040;040040 253 | 254 | ttyin: 255 | ;;;;; 040040 258 | keybd: 259 | ;;; 260 | displ: 261 | ;;;; 040040;040040;040040 264 | system: 265 | ;;; 040040 266 | password: 267 | ;;; 268 | 269 | d1: 1 270 | o43: 043 271 | o100: 0100 272 | o400000; 0400000 273 | d2: 2 274 | o12: 012 275 | om60: -060 276 | d3: 3 277 | ebufp: buf+64 278 | bufp: buf 279 | o777: 0777 280 | o777000: 0777000 281 | o40: 040 282 | o72: 072 283 | 284 | ibuf: .=.+100 285 | obuf: .=.+100 286 | tal: .=.+1 287 | buf: .=.+64 288 | char: .=.+1 289 | nchar: .=.+1 290 | pid1: .=.+1 291 | pid2: .=.+1 292 | -------------------------------------------------------------------------------- /lcase.b: -------------------------------------------------------------------------------- 1 | main $( 2 | auto ch; 3 | extrn read, write; 4 | 5 | goto loop; 6 | while (ch != 04) 7 | $( if (ch > 0100 & ch < 0133) 8 | ch = ch + 040; 9 | if (ch==015) goto loop; 10 | if (ch==014) goto loop; 11 | if (ch==011) 12 | $( ch = 040040; 13 | write(040040); 14 | write(040040); 15 | $) 16 | write(ch); 17 | loop: 18 | ch = read()&0177; 19 | $) 20 | $) -------------------------------------------------------------------------------- /maksys.s: -------------------------------------------------------------------------------- 1 | " copy a.out to disk track 18x 2 | " where x is the argument 3 | 4 | lac 017777 i; sad d8; skp; jmp error 5 | lac 017777; tad d5; dac track 6 | lac i track; lrss 9; tad om60 7 | spa; jmp error; dac track 8 | tad dm10; sma; jmp error 9 | 10 | sysopen; a.out; 0 11 | spa; jmp error 12 | sys read; bufp; buf; 3072 13 | sad .-1 14 | jmp error 15 | 16 | dscs 17 | -3072; dslw 18 | lac bufp; dslm 19 | lac track; alss 8; xor o300000; dsld 20 | lac o30000; dsls 21 | dssf; jmp .-1 22 | dsrs; spa; jmp error 23 | -1024; dslw 24 | lac d3072; dslm 25 | lac track; alss 8; xor o300110; dsld 26 | lac o3000; dsls 27 | dssf; jmp .-1 28 | dsrs; spa; jmp error 29 | sys exit 30 | 31 | error: 32 | lac d1; sys write; 1f; 2 33 | sys exit 34 | 1: 077077;012 35 | 36 | dm10: -10 37 | dm5: 5 38 | om60: -060 39 | o300000: 0300000 40 | o300100: 0300110 41 | d8: 8 42 | d3072: 3072 43 | o3000: 03000 44 | d1: 1 45 | a.out: 46 | ;;n;t;< > ;< > " 36 | 37 | " constants 38 | d0: 0 39 | d1: 1 40 | d2: 2 41 | d3: 3 42 | d4: 4 43 | d5: 5 44 | d6: 6 45 | d7: o7: 07 46 | d8: 8 47 | d9: 9 48 | o12: d10: 10 49 | o14: 014 50 | o15: 015 51 | o17: 017 52 | o20: 020 53 | o33: 033 54 | o40: 040 55 | o55: 055 56 | o77: 077 57 | d65:o101: 0101 58 | d33: 33 59 | o132: 0132 60 | o134: 0134 61 | o137: 0137 62 | o155: 0155 63 | o177: 0177 64 | o212: 0212 65 | o375: 0375 66 | o777: 0777 67 | o2000: 02000 68 | o4000: 04000 69 | d7999: 7999 70 | o10000: 010000 71 | o17762: 017762 72 | o17777: 017777 73 | o20001: 020001 74 | o40000: 040000 75 | o40001: 040001 76 | o70000: 070000 77 | o77777: 077777 78 | o100000: 0100000 79 | o140000: 0140000 80 | o200000: 0200000 81 | o200001: 0200001 82 | o300000: 0300000 83 | o400000: 0400000 84 | o500000: 0500000 85 | o577777: 0577777 86 | o600000: 0600000 87 | o640000: 0640000 88 | o700000: 0700000 89 | o777700: 0777700 90 | o777760: 0777760 91 | dm3: -3 92 | dm1: -1 93 | 94 | 9: .=.+t 95 | c1: .=.+1 96 | .=.+14 97 | q2: 98 | .+2;0;.+2;0;.+2;0;.+2;0;.+2;0;.+2;0;.+2;0;.+2;0;.+2;0;.+2;0 99 | .+2;0;.+2;0;.+2;0;.+2;0;.+2;0;.+2;0;.+2;0;.+2;0;.+2;0;.+2;0 100 | .+2;0;.+2;0;.+2;0;.+2;0;.+2;0;.+2;0;.+2;0;.+2;0;.+2;0;.+2;0 101 | .+2;0;.+2;0;.+2;0;.+2;0;.+2;0;.+2;0;.+2;0;.+2;0;.+2;0;.+2;0 102 | .+2;0;.+2;0;.+2;0;.+2;0;.+2;0;.+2;0;.+2;0;.+2;0;.+2;0;0;0 103 | dsploc: .=.+1 104 | dsplno: .=.+1 105 | dspbuf: 106 | 0065057;0147740;0160000 107 | .=.+30 108 | coldentry: 109 | dzm 0100 " not re-entrant 110 | caf 111 | ion 112 | clon 113 | law 3072 114 | wcga 115 | jms dspinit 116 | law dspbuf 117 | jms movdsp 118 | cla 119 | jms dskio; 06000 120 | jms copy; dskbuf; sysdata; ulist-sysdata 121 | lac d3 122 | jms namei; initf 123 | jms halt 124 | jms iget 125 | cla 126 | jms iread; 4096; 4096 127 | jmp 4096 128 | . = dspbuf+dspbsz+3 129 | dskbuf = 07700 130 | dskbs: .=.+65+65+65+65 131 | edskbsp: . 132 | uquant: .=.+1 133 | dspbufp: .=.+1 134 | pbsflgs: .=.+2 135 | mode: .=.+1 136 | nttychar: .=.+1 137 | npptchar: .=.+1 138 | ttydelay: .=.+1 139 | name: .=.+4 140 | lnkaddr: .=.+1 141 | char: .=.+1 142 | dskaddr: .=.+1 143 | uniqpid: 1 144 | lu: .=.+4 145 | sfiles: .=.+10 146 | dpdata: 147 | dpstat: .=.+1 148 | dpread: .=.+1 149 | dpwrite: .=.+1 150 | dpchar: .=.+1 151 | dspdata: 152 | .dspb: .=.+1 153 | crdata: 154 | crread: .=.+1 155 | crchar: .=.+1 156 | sysdata: 157 | s.nxfblk: .=.+1 158 | s.nfblks: .=.+1 159 | s.fblks: .=.+10 160 | s.uniq: .=.+1 161 | s.tim: .=.+2 162 | ulist: 163 | 0131000;1;0;0 164 | 0031040;0;0;0 165 | 0031100;0;0;0 166 | 0031140;0;0;0 167 | 0031200;0;0;0 168 | 0031240;0;0;0 169 | 0031300;0;0;0 170 | 0031340;0;0;0 171 | 0031400;0;0;0 172 | 0031440;0;0;0 173 | userdata: 174 | u.ac: 0 175 | u.mq: 0 176 | u.rq: .=.+9 177 | u.uid: -1 178 | u.pid: 1 179 | u.cdir: 3 180 | u.ulistp: ulist 181 | u.swapret: 0 182 | u.base: 0 183 | u.count: 0 184 | u.limit: 0 185 | u.ofiles: .=.+30 186 | u.dspbuf: 0 187 | u.intflg: 1 188 | .=userdata+64 189 | ii: .=.+1 190 | inode: 191 | i.flags: .=.+1 192 | i.dskps: .=.+7 193 | i.uid: .=.+1 194 | i.nlks: .=.+1 195 | i.size: .=.+1 196 | i.uniq: .=.+1 197 | .= inode+12 198 | di: .=.+1 199 | dnode: 200 | d.i: .=.+1 201 | d.name: .=.+4 202 | d.uniq: .=.+1 203 | . = dnode+8 204 | fnode: 205 | f.flags: .=.+1 206 | f.badd: .=.+1 207 | f.i: 0 208 | 209 | -------------------------------------------------------------------------------- /s9.s: -------------------------------------------------------------------------------- 1 | " s9 -- cold boot 2 | 3 | . = coldentry+4 4 | 5 | " zero i-list 6 | 7 | dzm ii 8 | jms copyz; dskbuf; 64 9 | 1: 10 | lac ii 11 | jms dskio; 07000 12 | isz ii 13 | -710 14 | tad ii 15 | sza 16 | jmp 1b 17 | 18 | " free rest of disk 19 | 20 | 1: 21 | lac ii 22 | jms free 23 | isz ii 24 | -6400 25 | tad ii 26 | sza 27 | jmp 1b 28 | 29 | " read in tapes 30 | 31 | dzm ii 32 | 1: 33 | dzm sum 34 | jms getw " count 35 | sza 36 | jmp .+3 37 | hlt 38 | jmp 1b " 0 count means pause 39 | dac xx 40 | isz ii 41 | lac ii 42 | jms iget 43 | jms copyz; inode; 12 44 | jms getw " flags 45 | dac i.flags 46 | -1 47 | dac i.uid 48 | jms getw " number links 49 | dac i.nlks 50 | -2 51 | tad xx 52 | dac i.size 53 | lac ii 54 | dac i.uniq 55 | law 4096-1 56 | dac 8 57 | -1 58 | tad i.size 59 | cma 60 | sna 61 | jmp 3f 62 | dac xx 63 | 64 | 2: 65 | jms getw 66 | dac 8 i 67 | isz xx 68 | jmp 2b 69 | 3: 70 | lac sum 71 | dac xx 72 | jms getw " checksum 73 | sad xx 74 | skp 75 | jms halt 76 | lac i.size 77 | dac .+4 78 | cla 79 | jms iwrite; 4096; .. 80 | jms iput 81 | cla 82 | jmp 1b 83 | 84 | getw: 0 85 | jms getc 86 | alss 12 87 | lmq 88 | jms getc 89 | alss 6 90 | omq 91 | lmq 92 | jms getc 93 | omq 94 | lmq 95 | add sum 96 | dac sum 97 | lacq 98 | jmp getw i 99 | 100 | getc: 0 101 | iof 102 | rsa 103 | rsf 104 | jmp .-1 105 | rrb 106 | sna 107 | jmp getc+1 108 | and o77 109 | ion 110 | jmp getc i 111 | xx: 0 112 | sum: 0 113 | -------------------------------------------------------------------------------- /scope.v: -------------------------------------------------------------------------------- 1 | r 2 | 3 | :la 4 | x 5 | fb 6 | v 7 | de 8 | dh 9 | fk 10 | nk 11 | x 12 | ik 13 | v 14 | gh 15 | ge 16 | ib 17 | kb 18 | me 19 | mh 20 | kk 21 | x 22 | mn 23 | r 24 | 25 | :lb 26 | x 27 | ba 28 | v 29 | nb 30 | x 31 | gb 32 | v 33 | ee 34 | eh 35 | gk 36 | kk 37 | mh 38 | me 39 | kb 40 | x 41 | mn 42 | r 43 | 44 | :lc 45 | x 46 | kk 47 | v 48 | mh 49 | me 50 | kb 51 | gb 52 | ee 53 | eh 54 | hl 55 | x 56 | mn 57 | r 58 | 59 | :ld 60 | x 61 | ak 62 | v 63 | nk 64 | x 65 | gk 66 | v 67 | eh 68 | ee 69 | gb 70 | kb 71 | me 72 | mh 73 | kk 74 | x 75 | mn 76 | r 77 | 78 | :le 79 | x 80 | me 81 | v 82 | ce 83 | ag 84 | ak 85 | x 86 | mn 87 | r 88 | 89 | :lf 90 | x 91 | me 92 | v 93 | ce 94 | ag 95 | ak 96 | x 97 | fc 98 | v 99 | fi 100 | x 101 | mn 102 | r 103 | 104 | :lg 105 | x 106 | nb 107 | v 108 | pe 109 | ph 110 | mk 111 | gk 112 | eh 113 | ee 114 | gb 115 | jb 116 | le 117 | lh 118 | jk 119 | x 120 | mn 121 | r 122 | 123 | :lh 124 | x 125 | ab 126 | v 127 | nb 128 | x 129 | hb 130 | v 131 | fe 132 | fh 133 | hk 134 | nk 135 | x 136 | mn 137 | r 138 | 139 | :li 140 | x 141 | ce 142 | v 143 | cg 144 | eg 145 | ee 146 | ce 147 | x 148 | gc 149 | v 150 | gf 151 | mf 152 | x 153 | mc 154 | v 155 | mi 156 | x 157 | mn 158 | r 159 | 160 | :lj 161 | x 162 | mb 163 | v 164 | od 165 | of 166 | mh 167 | fh 168 | fd 169 | x 170 | ce 171 | v 172 | cg 173 | eg 174 | ee 175 | ce 176 | x 177 | mn 178 | r 179 | 180 | :lk 181 | x 182 | cb 183 | v 184 | nb 185 | x 186 | jb 187 | v 188 | ek 189 | x 190 | hd 191 | v 192 | nl 193 | x 194 | mn 195 | r 196 | 197 | :ll 198 | x 199 | md 200 | v 201 | mj 202 | x 203 | mg 204 | v 205 | bg 206 | be 207 | x 208 | mn 209 | r 210 | 211 | :lm 212 | v 213 | ea 214 | x 215 | ha 216 | v 217 | fb 218 | fd 219 | hf 220 | fg 221 | fj 222 | hk 223 | nk 224 | x 225 | hf 226 | v 227 | nf 228 | x 229 | mn 230 | r 231 | 232 | :ln 233 | x 234 | fb 235 | v 236 | nb 237 | x 238 | hb 239 | v 240 | ff 241 | fh 242 | hk 243 | nk 244 | x 245 | mn 246 | r 247 | 248 | :lo 249 | x 250 | kb 251 | v 252 | hb 253 | fe 254 | fh 255 | hk 256 | kk 257 | mh 258 | me 259 | kb 260 | x 261 | mn 262 | r 263 | 264 | :lp 265 | x 266 | pb 267 | v 268 | eb 269 | x 270 | hb 271 | v 272 | fe 273 | fg 274 | hk 275 | kk 276 | mg 277 | me 278 | kb 279 | x 280 | mn 281 | r 282 | 283 | :lq 284 | x 285 | fk 286 | v 287 | pk 288 | pm 289 | x 290 | hk 291 | v 292 | fh 293 | fe 294 | hb 295 | kb 296 | me 297 | mh 298 | kk 299 | x 300 | mn 301 | r 302 | 303 | :lr 304 | x 305 | md 306 | v 307 | gd 308 | x 309 | fb 310 | v 311 | gd 312 | ff 313 | fh 314 | gj 315 | x 316 | mn 317 | r 318 | 319 | :ls 320 | x 321 | kb 322 | v 323 | md 324 | mh 325 | lj 326 | ij 327 | hh 328 | gd 329 | ed 330 | de 331 | di 332 | fj 333 | x 334 | mn 335 | r 336 | 337 | :lt 338 | x 339 | db 340 | v 341 | dj 342 | x 343 | ae 344 | v 345 | ke 346 | mf 347 | mh 348 | lj 349 | x 350 | mn 351 | r 352 | 353 | :lu 354 | x 355 | db 356 | v 357 | kb 358 | md 359 | mg 360 | ki 361 | ci 362 | x 363 | mk 364 | v 365 | ki 366 | x 367 | mn 368 | r 369 | 370 | :lv 371 | x 372 | db 373 | v 374 | mf 375 | dj 376 | x 377 | mn 378 | r 379 | 380 | :lw 381 | x 382 | da 383 | v 384 | md 385 | gg 386 | mj 387 | dm 388 | x 389 | mn 390 | r 391 | 392 | :lx 393 | x 394 | db 395 | v 396 | nl 397 | x 398 | dj 399 | v 400 | na 401 | x 402 | mn 403 | r 404 | 405 | :ly 406 | x 407 | db 408 | v 409 | mf 410 | x 411 | dj 412 | v 413 | oe 414 | ob 415 | x 416 | mn 417 | r 418 | 419 | :lz 420 | x 421 | dc 422 | v 423 | di 424 | mb 425 | mj 426 | x 427 | mn 428 | r 429 | 430 | :space 431 | x 432 | mn 433 | r 434 | 435 | :excla 436 | x 437 | af 438 | v 439 | if 440 | x 441 | lf 442 | v 443 | mg 444 | nf 445 | me 446 | lf 447 | x 448 | mn 449 | r 450 | 451 | :quote 452 | x 453 | ad 454 | v 455 | dd 456 | x 457 | ah 458 | v 459 | dh 460 | x 461 | mn 462 | r 463 | 464 | :number 465 | x 466 | ka 467 | v 468 | cf 469 | x 470 | kf 471 | v 472 | ck 473 | x 474 | eb 475 | v 476 | ej 477 | x 478 | ib 479 | v 480 | ij 481 | x 482 | mn 483 | r 484 | 485 | :dollar 486 | x 487 | bj 488 | v 489 | bd 490 | db 491 | eb 492 | gd 493 | gh 494 | ij 495 | jj 496 | lh 497 | la 498 | x 499 | af 500 | v 501 | nf 502 | x 503 | mn 504 | r 505 | 506 | :accr 507 | x 508 | ah 509 | v 510 | cd 511 | x 512 | mn 513 | r 514 | 515 | :accl 516 | x 517 | ad 518 | v 519 | ch 520 | x 521 | mn 522 | r 523 | 524 | :lparn 525 | x 526 | ag 527 | v 528 | ce 529 | ke 530 | nh 531 | x 532 | mn 533 | r 534 | 535 | :rparn 536 | x 537 | ae 538 | v 539 | cg 540 | kg 541 | nd 542 | x 543 | mn 544 | r 545 | 546 | :aster 547 | x 548 | gb 549 | v 550 | gk 551 | x 552 | dd 553 | v 554 | ki 555 | x 556 | dh 557 | v 558 | kc 559 | x 560 | mn 561 | r 562 | 563 | :plus 564 | x 565 | gb 566 | v 567 | gk 568 | x 569 | cf 570 | v 571 | lf 572 | x 573 | mn 574 | r 575 | 576 | :comma 577 | x 578 | mf 579 | v 580 | mg 581 | oe 582 | mf 583 | x 584 | mn 585 | r 586 | 587 | :minus 588 | x 589 | gb 590 | v 591 | gk 592 | x 593 | mn 594 | r 595 | 596 | :period 597 | x 598 | le 599 | v 600 | lf 601 | mf 602 | me 603 | le 604 | x 605 | mn 606 | r 607 | 608 | :sla 609 | v 610 | ak 611 | x 612 | v 613 | bj 614 | x 615 | mn 616 | r 617 | 618 | :bsla 619 | x 620 | aa 621 | v 622 | nl 623 | x 624 | mn 625 | r 626 | 627 | :colon 628 | x 629 | le 630 | lf 631 | mf 632 | me 633 | le 634 | x 635 | fe 636 | v 637 | ff 638 | gf 639 | ge 640 | fe 641 | x 642 | mn 643 | r 644 | 645 | :semcln 646 | x 647 | mf 648 | v 649 | mo 650 | oe 651 | mf 652 | x 653 | ff 654 | v 655 | fg 656 | gg 657 | fe 658 | x 659 | mn 660 | r 661 | 662 | :less 663 | x 664 | cj 665 | v 666 | gb 667 | kj 668 | x 669 | mn 670 | r 671 | 672 | :great 673 | x 674 | cb 675 | v 676 | gj 677 | kb 678 | x 679 | mn 680 | r 681 | 682 | :equal 683 | x 684 | eb 685 | v 686 | ek 687 | x 688 | ib 689 | v 690 | ik 691 | x 692 | mn 693 | r 694 | 695 | :quest 696 | x 697 | eb 698 | v 699 | bc 700 | af 701 | bi 702 | ek 703 | if 704 | mf 705 | x 706 | mn 707 | r 708 | 709 | :lbk 710 | x 711 | ai 712 | v 713 | af 714 | mf 715 | mj 716 | x 717 | mn 718 | r 719 | 720 | :rbk 721 | x 722 | ac 723 | v 724 | af 725 | mf 726 | mb 727 | x 728 | mn 729 | r 730 | 731 | :cmflx 732 | x 733 | bc 734 | v 735 | af 736 | bj 737 | x 738 | mn 739 | r 740 | 741 | :under 742 | x 743 | na 744 | v 745 | nn 746 | x 747 | mn 748 | r 749 | 750 | :at 751 | v 752 | aa 753 | ak 754 | mk 755 | ma 756 | x 757 | ck 758 | v 759 | cd 760 | kd 761 | kl 762 | x 763 | mn 764 | r 765 | 766 | Llbr 767 | x 768 | ai 769 | v 770 | bf 771 | ff 772 | gd 773 | hf 774 | lf 775 | nj 776 | x 777 | mn 778 | r 779 | 780 | :rbr 781 | x 782 | ac 783 | v 784 | bf 785 | ff 786 | gh 787 | hf 788 | lf 789 | nb 790 | x 791 | mn 792 | r 793 | 794 | :or 795 | x 796 | af 797 | v 798 | nf 799 | x 800 | mn 801 | r 802 | 803 | :tild 804 | x 805 | ai 806 | v 807 | dh 808 | ad 809 | db 810 | x 811 | mn 812 | r 813 | 814 | :null 815 | r 816 | 817 | :percent 818 | v 819 | ak 820 | ab 821 | eb 822 | ef 823 | af 824 | x 825 | hg 826 | v 827 | hk 828 | lk 829 | lg 830 | hg 831 | x 832 | mn 833 | r 834 | 835 | :amper 836 | x 837 | mk 838 | v 839 | ki 840 | gf 841 | ee 842 | dd 843 | cd 844 | ae 845 | af 846 | bg 847 | cg 848 | ef 849 | fe 850 | gc 851 | ib 852 | kc 853 | ld 854 | mf 855 | lh 856 | ik 857 | x 858 | mn 859 | r 860 | 861 | 862 | -------------------------------------------------------------------------------- /sop.s: -------------------------------------------------------------------------------- 1 | " sop 2 | 3 | dac = 0040000 4 | jms = 0100000 5 | dzm = 0140000 6 | lac = 0200000 7 | xor = 0240000 8 | add = 0300000 9 | tad = 0340000 10 | xct = 0400000 11 | isz = 0440000 12 | and = 0500000 13 | sad = 0540000 14 | jmp = 0600000 15 | nop = 0740000 16 | i = 020000 17 | law = 0760000 18 | cma = 0740001 19 | las = 0750004 20 | ral = 0740010 21 | rar = 0740020 22 | hlt = 0740040 23 | sma = 0740100 24 | sza = 0740200 25 | snl = 0740400 26 | skp = 0741000 27 | sna = 0741200 28 | szl = 0741400 29 | rtl = 0742010 30 | rtr = 0742020 31 | cil = 0744000 32 | rcl = 0744010 33 | rcr = 0744020 34 | cia = 0750000 35 | lrs = 0640500 36 | lrss = 0660500 37 | lls = 0640600 38 | llss = 0660600 39 | als = 0640700 40 | alss = 0660700 41 | mul = 0653323 42 | idiv = 0653323 43 | lacq = 0641002 44 | clq = 0650000 45 | omq = 0650002 46 | cmq = 0650004 47 | lmq = 0652000 48 | 49 | dscs = 0707141 50 | dslw = 0707124 51 | dslm = 0707142 52 | dsld = 0707104 53 | dsls = 0707144 54 | dssf = 0707121 55 | dsrs = 0707132 56 | 57 | iof = 0700002 58 | ion = 0700042 59 | caf = 0703302 60 | clon = 0700044 61 | clsf = 0700001 62 | 63 | clof = 0700004 64 | ksf = 0700301 65 | krb = 0700312 66 | tsf = 0700401 67 | tcf = 0700402 68 | tls = 0700406 69 | sck = 0704301 70 | cck = 0704304 71 | lck = 0704312 72 | rsf = 0700101 73 | rsa = 0700104 74 | rrb = 0700112 75 | psf = 0700201 76 | pcf = 0700202 77 | psa = 0700204 78 | cdf = 0700501 79 | lds = 0701052 80 | lda = 0701012 81 | wcga = 0704206 82 | raef = 0700742 83 | rlpd = 0700723 84 | beg = 0700547 85 | spb = 0704401 86 | cpb = 0704404 87 | lpb = 0704412 88 | wbl = 0704424 89 | dprs = 0704752 90 | dpsf = 0704741 91 | dpcf = 0704761 92 | dprc = 0704712 93 | crsf = 0706701 94 | crrb = 0706712 95 | 96 | -------------------------------------------------------------------------------- /sysmap: -------------------------------------------------------------------------------- 1 | . 004671 r 2 | .ac 004012 r 3 | .chown 000426 r 4 | .capt 000404 r 5 | .creat 000665 r 6 | .chdir 000622 r 7 | .chmod 000414 r 8 | .dskb 004105 r 9 | .dspb 005547 r 10 | .dsptm 004104 r 11 | .dske 004106 r 12 | .exit 001170 r 13 | .fork 001116 r 14 | .getuid 000433 r 15 | .halt 001343 r 16 | .int1 004100 r 17 | .insys 004077 r 18 | .int2 004101 r 19 | .intrp 000257 r 20 | .link 000474 r 21 | .lpba 005550 r 22 | .open 000633 r 23 | .rmes 001204 r 24 | .rele 000410 r 25 | .rename 000547 r 26 | .read 000731 r 27 | .smes 001232 r 28 | .savblk 004103 r 29 | .sysloc 000262 r 30 | .setuid 000566 r 31 | .status 000352 r 32 | .save 001156 r 33 | .seek 000436 r 34 | .tell 000466 r 35 | .time 000615 r 36 | .unlink 000547 r 37 | .write 001000 r 38 | access 002323 r 39 | alloc 001556 r 40 | argname 002642 r 41 | arg 002636 r 42 | awake 001311 r 43 | badcal 001153 r 44 | betwen 001654 r 45 | c1 004270 r 46 | chkint 000320 r 47 | chkink1 001546 r 48 | char 005522 r 49 | cnop 003453 r 50 | coldentr 004520 r 51 | copyz 001723 r 52 | collapse 002066 r 53 | copy 001700 r 54 | crdata 005551 r 55 | crchar 005552 r 56 | crread 005551 r 57 | cskp 003346 r 58 | d.name 005761 r 59 | d.uniq 005765 r 60 | d.i 005760 r 61 | d0 004127 r 62 | d10 004141 r 63 | d1 004130 r 64 | d2 004131 r 65 | d33 004153 r 66 | d3 004132 r 67 | d4 004133 r 68 | d5 004134 r 69 | d6 004135 r 70 | d65 004155 r 71 | d7999 004166 r 72 | d7 004136 r 73 | d8 004137 r 74 | d9 004140 r 75 | dacq1 004120 r 76 | dacu 004110 r 77 | dacisize 003413 r 78 | dget 003115 r 79 | di 005757 r 80 | dm1 004215 r 81 | dm3 004214 r 82 | dnode 005760 r 83 | dpdata 005543 r 84 | dput 003147 r 85 | dpchar 005546 r 86 | dpwrite 005545 r 87 | dpstat 005543 r 88 | dpread 005544 r 89 | dskbufp 004114 r 90 | dskio 002173 r 91 | dspdata 005547 r 92 | dskrd 002127 r 93 | dsktrans 002231 r 94 | dsploc 004455 r 95 | dslot 002474 r 96 | dspino 004456 r 97 | dspbufp3 004116 r 98 | dspbufp 005506 r 99 | dspresta 003523 r 100 | dskaddr 005523 r 101 | dskbs 005100 r 102 | dskwr 002157 r 103 | dspput 002551 r 104 | dspleft 002573 r 105 | dspbuf 004457 r 106 | error 001542 r 107 | exitrw 001041 r 108 | f.badd 005771 r 109 | f.flags 005770 r 110 | fassign 002340 r 111 | fallr 002436 r 112 | fblksp 004117 r 113 | fget 002371 r 114 | finac 003401 r 115 | fnode 005770 r 116 | forall 002434 r 117 | fput 003413 r 118 | free 001615 r 119 | getchar 001756 r 120 | getw 004635 r 121 | getc 004654 r 122 | halt 002265 r 123 | i.flags 005743 r 124 | i.dskps 005744 r 125 | i.uniq 005756 r 126 | i.size 005755 r 127 | i.nlks 005754 r 128 | i.uid 005753 r 129 | icreat 002506 r 130 | idskpp 004113 r 131 | iget 003030 r 132 | ii 005742 r 133 | inode 005743 r 134 | intrp1 004032 r 135 | intrp2 004055 r 136 | initf 004123 r 137 | iput 003057 r 138 | iread 003277 r 139 | isown 002675 r 140 | itrunc 002706 r 141 | iwrite 003270 r 142 | laci 001646 r 143 | lacq1 004121 r 144 | lnkaddr 005521 r 145 | lookfor 001073 r 146 | locsw 000275 r 147 | locn 000317 r 148 | lu 005525 r 149 | maxquant 004111 r 150 | mode 005511 r 151 | movdsp 002626 r 152 | name 005515 r 153 | namei 002750 r 154 | npptchar 005513 r 155 | nttychar 005512 r 156 | o10000 004167 r 157 | o17 004144 r 158 | o177 004160 r 159 | o101 004152 r 160 | o17762 004170 r 161 | o17777 004171 r 162 | o12 004141 r 163 | o132 004154 r 164 | o134 004155 r 165 | o137 004156 r 166 | o100000 004177 r 167 | o140000 004200 r 168 | o14 004142 r 169 | o15 004143 r 170 | 0155 004157 r 171 | o2000 004164 r 172 | o200001 004262 r 173 | o20001 004172 r 174 | 020 004145 r 175 | o212 004161 r 176 | o200000 004201 r 177 | o375 004162 r 178 | o33 004146 r 179 | o300000 004203 r 180 | o4000 004165 r 181 | o40000 004173 r 182 | o40 004147 r 183 | o400000 004204 r 184 | o500000 004205 r 185 | o55 004150 r 186 | o577777 004206 r 187 | o600000 004207 r 188 | o640000 004210 r 189 | o777 004163 r 190 | o77 004157 r 191 | o70000 004175 r 192 | o77777 004176 r 193 | o777760 004213 r 194 | o7 004136 r 195 | o700000 004211 r 196 | o777700 004212 r 197 | ofilesp 004112 r 198 | okexit 000102 r 199 | open1 000722 r 200 | orig 000000 r 201 | passone 001534 r 202 | pbsflgs 005507 r 203 | pget 003163 r 204 | piret 003766 r 205 | pibreak 003420 r 206 | putchar 001741 r 207 | putq 002022 r 208 | putcr 004025 r 209 | q1 004271 r 210 | q2p 004122 r 211 | q2 004311 r 212 | rkbdi 001415 r 213 | rppti 001472 r 214 | rttyi 001344 r 215 | s.tim 005570 r 216 | s.nxfblk 005553 r 217 | s.uniq 005567 r 218 | s.nfblks 005554 r 219 | s.fblks 005555 r 220 | seektell 002656 r 221 | searchu 001047 r 222 | sfiles 005551 r 223 | sleep 002445 r 224 | srcdbs 002046 r 225 | sum 004670 r 226 | swr 001331 r 227 | swp 000220 r 228 | swn 000256 r 229 | sww 001331 r 230 | swap 000136 r 231 | sysdata 005553 r 232 | sysexit 000103 r 233 | takeq 001770 r 234 | tadu 004107 r 235 | ttydelay 005514 r 236 | ttyresta 003603 r 237 | u.dspbuf 005723 r 238 | u.intflg 005724 r 239 | u.ulistp 005660 r 240 | u.pid 005656 r 241 | u.ofiles 005665 r 242 | u.swapre 005661 r 243 | u.mq 005643 r 244 | u.uid 005655 r 245 | u.ac 005642 r 246 | u.limit 005664 r 247 | u.cdir 005657 r 248 | u.count 005663 r 249 | u.base 005662 r 250 | u.rq 005644 r 251 | ulsit 005562 r 252 | uniqpid 005524 r 253 | uquant 005505 r 254 | userdata 005642 r 255 | wakeup 003773 r 256 | wdspo 001462 r 257 | wppto 001506 r 258 | wttyo 001364 r 259 | xx 004667 r 260 | -------------------------------------------------------------------------------- /trysys.s: -------------------------------------------------------------------------------- 1 | " trysys 2 | 3 | sys open; a.out; 0 4 | spa 5 | jmp error 6 | sys read; buf; 3072 7 | sad .-1 8 | jmp error 9 | iof 10 | caf 11 | cdf 12 | clof 13 | law buf 14 | dac t1 15 | dzm t2 16 | -3072 17 | dac c1 18 | 1: 19 | lac t1 i 20 | dac t2 i 21 | isz t1 22 | isz t2 23 | isz c1 24 | jmp 1b 25 | jmp 0100 26 | 27 | error: 28 | lac d1 29 | sys write; 1f; 1 30 | sys exit 31 | 1: 077012 32 | 33 | a.out: 34 | ;;