⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 tmgl.s

📁 UNIX v6源代码 这几乎是最经典的unix版本 unix操作系统设计和莱昂氏unix源代码分析都是用的该版
💻 S
字号:
1 ..1..1:begin:ignoreblankspr1:commentsalt;pr1parsefirstsalt;pr2diagerrorpr2:commentsalt;pr2parselinesalt;pr2diagerrorsalt;pr2putcharcl1 parselast.3=.<1 \0>;.even.2=..tx;.3.tp;.byte 1,0;1 .tn.1=.fref1 trans;1 .2.4=..tp;.byte 2,0;.txs;':1 .tp;.byte 1,0;first:parse.1getfrefline1 trans;1 .4.1=.1.2=.2.3=.1 .txs;';.5=.<??? \0>;.even.4=..tn.tx;.5.tp;.byte 2,0;.tp;.byte 1,0;1 .tnerror:smarkignorenoneany.1string.2scopy.pxs;';alt;..3trans;1 .3goto;..2..3:null..2:1 trans;1 .4.1=..tp;.byte 2,0;.tn.tp;.byte 1,0;1 .tnline:labelscharclalt;..7.pxs;';goto;..4..7:statementsalt;..5numberssalt;..6trule.pxs;';..6:..5:..4:1 trans;1 .1.1=..tp;.byte 2,0;.tn1 .tp;.byte 1,0;numbers:number.pxs;';numbersalt;done1 trans;1 .1.1=..tp;.byte 2,0;.tn1 .tp;.byte 1,0;labels:labellabelsalt;done1 trans;1 .1.1=..tp;.byte 1,0;1 .txs;':label:name.pxs;':1 trans;1 .1.2=.<.pn:1 .pxs;12\0>;.even.3=.<.tn:1 .txs;12\0>;.even.1=..tx;.2.tn.tx;.31 .tnlast:1 trans;1 .1.1=.</*\0>;.even.2=.4comment:.px;.1co1:ignore.2.pxs;'*ignorenone.pxs;'/1 alt;co1.1=.0.2=.gpar;1.tp;.byte 2,0;1 .tp;.byte 1,0;.3=.gpar;11 generate.4=.gpar;1.tp;.byte 2,0;nil.tn1 .tp;.byte 1,0;q1.5=.1 .tp;.byte 1,0;xbit.7=.<1 succ\0>;.even.6=..tp;.byte 1,0;nil.tn1 .tx;.7statement:.l;csym.l;.1.st.poldtabdttoldtabpatprocalt;..11plsttlst.pxs;')trans;1 .2goto;..10..11:trans;1 .3noelem..10:stt1:bundlefragalt;..15trans;1 .4salt;stt1goto;..12..15:.pxs;';ifelemalt;..14trans;1 .5goto;..13..14:trans;1 .6..13:..12:1 succ.1=.<proc(\0>;.evenproc:smarkignorenone1 .px;.1.1=.1 octalnpa.3=.<params;\0>;.even.2=..tx;.3.tp;.byte 1,0;1 .tnplst:listpidentalt;nullremote.11 trans;1 .2pident:ident1 newtabpatnpa.1=.0.2=.name.l;i.ia1 .p.3=.1 octali.5=.<push;\0>;.even.4=..tx;.5.tp;.byte 1,0;.tn.tp;.byte 2,0;1 .tntlst:.pxs;';alt;null.l;i.l;.1.st.plist.2remote.31 trans;1 .4.1=.gpar;11 .tp;.byte 1,0;nilq1.2=.gpar;11 .tp;.byte 1,0;frag:prulealt;..17trans;1 .1goto;..16..17:labelsnoelemtrans;1 .2..16:1 succ.2=.<salt;\0>;.even.1=.gpar;2.tp;.byte 3,0;nilnil.tn.tx;.2.tp;.byte 2,0;.tn.tp;.byte 1,0;q2q1.tn.tp;.byte 2,0;1 .txs;':.5=.<alt;\0>;.even.4=..tn.tx;.51 .tp;.byte 1,0;.6=.<goto;\0>;.even.3=.gpar;2.tp;.byte 4,0;.4q1.tn.tx;.6.tp;.byte 3,0;.tn.tp;.byte 1,0;.txs;':.tp;.byte 2,0;q2q1.tn.tp;.byte 3,0;1 .txs;':prule:.l;sndt.l;ndt.st.pdisj.pxs;'|alt;..23.l;ndt.l;sndt.st.pfrefifeasyalt;..21pruletrans;1 .1goto;..20..21:prulefreftrans;1 .3..20:noelemgoto;..22..23:..22:1 succ.1=.gpar;2.tp;.byte 2,0;q2nil.tn1 .tp;.byte 1,0;nilq1disj:pelempdotdisjalt;..25trans;1 .1ifelemalt;doneishardgoto;..24..25:..24:1 succ.1=.gpar;2.tp;.byte 1,0;q11 .tq;2.2=.1.3=.gpar;21 generatepelem:pprimalt;..31trans;1 .1iseasygoto;..26..31:.pxs;'(push.2sndtprulealt;..30.pxs;')goto;..27..30:.pxs;')trans;1 .3noelem..27:..26:1 succ.1=.gpar;1.tq;1.tp;.byte 2,0;.tn1 .tp;.byte 1,0;.2=.gpar;1.tq;11 .tp;.byte 1,0;.4=.<alt;\0>;.even.3=.1 .tx;.4.5=.<\\\0>;.even.7=.<salt;\0>;.even.6=.1 .tx;.7.10=.gpar;1.tp;.byte 3,0;nil.tn.tq;1.tp;.byte 2,0;1 .tp;.byte 1,0;pprim:specialsalt;..32rname.pxs;':alt;..37failgoto;..33..37:spdotsalt;..34..34:ignorenone.pxs;'(alt;..36ignoreblankslistparg.pxs;')trans;1 .1goto;..35..36:trans;1 .2..35:..33:..32:.pxs;'/alt;..41trans;1 .3goto;..40..41:.px;.5alt;..43trans;1 .6..40:rnametrans;1 .10goto;..42..43:..42:1 succ.2=.0pdot:.pxs;'.alt;doneignorenoneidentsalt;alias.l;dtt.tsalt;..44tabledtt.l;ndt.l;.2.st.p..44:.l;ndt.ia1 .p.1=.1 anyletterspdot:.pxs;'.ignorenonenot.1alias:1 newtabdttndtparg:rnamesalt;..45remotespecparg..45:1 succ.2=.<\\n\\0\0>;.even.1=.1 .tx;.2.4=.<1 succ\0>;.even.3=.1 .tx;.4.5=.3.6=.0.7=.1 .tp;.byte 1,0;nilxbit.11=.<1 succ\0>;.even.10=..tp;.byte 1,0;nilnil.tn1 .tx;.11specparg:numbersalt;..46charclsalt;..47.pxs;'<alt;..57longlitgoto;..50..57:.pxs;'*alt;..56trans;1 .1goto;..51..56:.pxs;'(.pxs;')alt;..55trans;1 .3goto;..52..55:push.5dttndtsndt.l;dtt.l;.6.st.pprule.pxs;')oldtabdttifelemalt;..54trans;1 .7goto;..53..54:trans;1 .10..53:..52:..51:..50:..47:..46:1 succ.1=.1iseasy:.l;easy.l;.1.st1 .p.1=.0ishard:.l;easy.l;.1.st1 .p.1=.2noelem:.l;easy.l;.1.st1 .p.1=.2ifelem:.l;easy.l;.1.ne1 .t.2=.1ifeasy:.l;easy.l;.2.eq1 .t.2=.<trans;1 \0>;.even.1=.gpar;1.tq;1.tx;.21 .tp;.byte 1,0;.4=.<.px\0>;.even.3=.gpar;1.tq;1.tx;.41 .tp;.byte 1,0;.6=.<.pn\0>;.even.5=.gpar;1.tq;11 .tx;.6.10=.<.t\0>;.even.7=.1 .tx;.10.12=.<.p\0>;.even.11=.1 .tx;.12.13=.gpar;1.tp;.byte 2,0;.tn.tq;11 .tp;.byte 1,0;special:.pxs;'=alt;..70rnamesalt;..60remotetrule..60:trans;1 .1goto;..61..70:.pxs;'<alt;..67literaltrans;1 .3goto;..62..67:.pxs;'*alt;..66trans;1 .5goto;..63..66:.pxs;'[expr.pxs;'?alt;..65trans;1 .7goto;..64..65:trans;1 .11..64:.pxs;']trans;1 .13..63:..62:..61:1 succ.2=.<[-\0>;.even.3=.<\\<1]\0>;.even.1=..tx;.2.tp;.byte 1,0;1 .tx;.3rname:namealt;..72tabvalpatnpaalt;donegoto;..71..72:.pxs;'$number..71:1 trans;1 .1.2=.<gpar;\0>;.even.1=..tx;.2.tp;.byte 2,0;.tn1 .tp;.byte 1,0;trule:oldtabptttbodysalt;..73.pxs;'(numbersalt;..74tra..74:.pxs;')tbodytrans;1 .1..73:1 succtra:listtident1 octalnpttident:ident1 newtabpttnpt.2=.<1 generate\0>;.even.1=.1 .tx;.2tbody:.pxs;'{.pxs;'}alt;..76trans;1 .1goto;..75..76:trb..75:1 succ.1=.xbit1 .tp;.byte 1,0;.2=..tp;.byte 2,0;.tn1 .tp;.byte 1,0;trb:telem.pxs;'}alt;..100trans;1 .1goto;..77..100:trbtrans;1 .2..77:1 succ.2=.<.tx\0>;.even.1=..tx;.21 .tp;.byte 1,0;.4=.<.tn\0>;.even.3=.1 .tx;.4.6=.<.tq;\0>;.even.5=..tx;.61 .tp;.byte 1,0;telem:.pxs;'<alt;..110literaltrans;1 .1goto;..101..110:.pxs;'*alt;..107trans;1 .3goto;..102..107:.pxs;'$alt;..106numbertrans;1 .5goto;..103..106:numberalt;..105tdottrans;1 tptgoto;..104..105:namete1salt;donete2salt;done..104:..103:..102:..101:1 succte1:tabvaldttndttdot1 trans;1 tpt.2=.<.tq;\0>;.even.1=..tx;.21 .tp;.byte 1,0;te2:tabvalpttnpt1 trans;1 .1.1=.1 .txs;'0.2=..tp;.byte 2,0;.txs;';1 .tp;.byte 1,0;tdot:.pxs;'.alt;..112numbergoto;..111..112:trans;1 .1..111:.pxs;'(alt;..114listtarg.pxs;')goto;..113..114:null..113:1 trans;1 .2targ:namesalt;..115remotetbody..115:1 succ.1=.<.tp;.byte \0>;.eventpt:.tx;.1.tp;.byte 2,0;.txs;',1 .tp;.byte 1,0;.1=..txs;';1 .tp;.byte 1,0;literal:shortlitsalt;..116remotelonglittrans;1 .1..116:1 succ.1=.<\>\0>;.even.3=.<s;'\0>;.even.2=..tx;.31 .tp;.byte 1,0;shortlit:ignorenonesmarkanylitch.px;.1scopy1 trans;1 .2.1=.<\>\0>;.even.3=.<\\\0>;.even.4=.<\>\0>;.even.2=..tx;.31 .tx;.4.5=.<\>\0>;.even.7=.<\\0\0>;.even.10=.<\>;.even\0>;.even.6=..txs;'<.tp;.byte 2,0;.tp;.byte 1,0;.tx;.71 .tx;.10longlit:ignorenone.px;.1alt;..120trans;1 .2goto;..117..120:null..117:litb.px;.51 trans;1 .6.1=.<\\\0>;.even.3=.<\\\\\0>;.even.2=..tp;.byte 2,0;.tx;.31 .tp;.byte 1,0;litb:smarkstringlitchscopy.px;.1alt;donelitb1 trans;1 .2expr:assignmentsalt;..121rv..121:1 succ.1=..tp;.byte 3,0;.tn.tp;.byte 1,0;.tn1 .tp;.byte 2,0;assignment:lvassignexpr1 trans;1 .1.1=..tp;.byte 3,0;.tn.tp;.byte 1,0;.tn1 .tp;.byte 2,0;.2=..tp;.byte 2,0;.tn1 .tp;.byte 1,0;rv:primerv1:bundleinfixalt;..125primetrans;1 .1salt;rv1goto;..122..125:rvaalt;..124trans;1 .2goto;..123..124:..123:..122:1 succ.2=.<.t;alt;\0>;.even.3=.<salt;\0>;.even.1=..tx;.2.tp;.byte 2,0;.tn.tp;.byte 4,0;.tn.tx;.3.tp;.byte 1,0;.tn.tp;.byte 2,0;.txs;':.tp;.byte 3,0;.tn.tp;.byte 1,0;1 .txs;':rva:.pxs;'?rv.pxs;':rvfreffref1 trans;1 .1.1=..tp;.byte 2,0;.tn1 .tp;.byte 1,0;.2=..tp;.byte 1,0;.tn1 .tp;.byte 2,0;.3=..tp;.byte 1,0;.tn1 .tp;.byte 2,0;.5=.<.l;\0>;.even.4=..tx;.51 .tp;.byte 1,0;prime:lvalt;..135suffixalt;donetrans;1 .1goto;..126..135:prefixalt;..134lvtrans;1 .2goto;..127..134:.pxs;'(alt;..133expr.pxs;')goto;..130..133:unaryalt;..132primetrans;1 .3goto;..131..132:remotenumbertrans;1 .4..131:..130:..127:..126:1 succ.2=.<.l;\0>;.even.1=..tx;.21 .tp;.byte 1,0;.4=.<.rv\0>;.even.3=..tp;.byte 1,0;.tn1 .tx;.4.6=.<.f\0>;.even.5=..tp;.byte 2,0;.tn.tp;.byte 1,0;.tn1 .tx;.6lv:rnamealt;..141trans;1 .1goto;..136..141:.pxs;'(alt;..140lv.pxs;')goto;..137..140:.pxs;'*primetrans;1 .3..137:..136:lv1:.pxs;'[alt;donebundleexpr.pxs;']trans;1 .51 salt;lv1.2=.<.u\0>;.even.1=..tp;.byte 1,0;.tn1 .tx;.2.4=.<.st\0>;.even.3=.1 .tx;.4assign:.pxs;'=ignorenoneinfixalt;..143trans;1 .1goto;..142..143:trans;1 .3..142:1 succ.2=.1 .pxs;'+.1=..pxs;'+1 not.2.4=.<.a\0>;.even.3=.1 .tx;.4.6=.<.s\0>;.even.5=.1 .tx;.6.10=.<.m\0>;.even.7=.1 .tx;.10.12=.<.q\0>;.even.11=.1 .tx;.12.14=.<.r\0>;.even.13=.1 .tx;.14.16=.<.o\0>;.even.15=.1 .tx;.16.20=.<.x\0>;.even.17=.1 .tx;.20.22=.<.n\0>;.even.21=.1 .tx;.22.23=.<==\0>;.even.25=.<.eq\0>;.even.24=.1 .tx;.25.26=.<!=\0>;.even.30=.<.ne\0>;.even.27=.1 .tx;.30.31=.<<=\0>;.even.33=.<.le\0>;.even.32=.1 .tx;.33.34=.<\>=\0>;.even.36=.<.ge\0>;.even.35=.1 .tx;.36.37=.<<<\0>;.even.41=.<.sl\0>;.even.40=.1 .tx;.41.43=.<.lt\0>;.even.42=.1 .tx;.43.44=.<\>\0>;.even.45=.<\>\0>;.even.47=.<.sr\0>;.even.46=.1 .tx;.47.51=.<.gt\0>;.even.50=.1 .tx;.51infix:smarkignorenone.pxs;'+alt;..201not.1trans;1 .3goto;..144..201:.pxs;'-alt;..200trans;1 .5goto;..145..200:.pxs;'*alt;..177trans;1 .7goto;..146..177:.pxs;'/alt;..176trans;1 .11goto;..147..176:.pxs;'%alt;..175trans;1 .13goto;..150..175:.pxs;'|alt;..174trans;1 .15goto;..151..174:.pxs;'^alt;..173trans;1 .17goto;..152..173:.pxs;'&alt;..172trans;1 .21goto;..153..172:.px;.23alt;..171trans;1 .24goto;..154..171:.px;.26alt;..170trans;1 .27goto;..155..170:.px;.31alt;..167trans;1 .32goto;..156..167:.px;.34alt;..166trans;1 .35goto;..157..166:.px;.37alt;..165trans;1 .40goto;..160..165:.pxs;'<alt;..164trans;1 .42goto;..161..164:.px;.44.px;.45alt;..163trans;1 .46goto;..162..163:trans;1 .50..162:..161:..160:..157:..156:..155:..154:..153:..152:..151:..150:..147:..146:..145:..144:1 succ.2=.<.lv\0>;.even.1=.1 .tx;.2.3=.<++\0>;.even.5=.<.ib\0>;.even.4=.1 .tx;.5.6=.<--\0>;.even.10=.<.db\0>;.even.7=.1 .tx;.10prefix:smarkignorenone.pxs;'&alt;..205trans;1 .1goto;..202..205:.px;.3alt;..204trans;1 .4goto;..203..204:.px;.6trans;1 .7..203:..202:1 succ.1=.<++\0>;.even.3=.<.ia\0>;.even.2=.1 .tx;.3.4=.<--\0>;.even.6=.<.da\0>;.even.5=.1 .tx;.6suffix:smarkignorenone.px;.1alt;..207trans;1 .2goto;..206..207:.px;.4trans;1 .5..206:1 succ.2=.<.nt\0>;.even.1=.1 .tx;.2.4=.<.ng\0>;.even.3=.1 .tx;.4.6=.<.cm\0>;.even.5=.1 .tx;.6unary:.pxs;'!alt;..213trans;1 .1goto;..210..213:.pxs;'-alt;..212trans;1 .3goto;..211..212:.pxs;'~trans;1 .5..211:..210:1 succcharcl:.pxs;'!alt;..215cclacclbgoto;..214..215:ccla..214:1 octalclassmask.1=.<<<\0>;.even.2=.1.4=.<<<\0>;.evenccla:.px;.1.l;classmask.l;.2.l;nclass.ia.sl.st.p.l;classmask.talt;cherrccl1:cclc.px;.41 salt;ccl1.1=.<\>\0>;.evencclc:ignorenoneccl3:.px;.1salt;ccl4ccle1 salt;ccl3.1=.<\>\0>;.even.3=.<\>\0>;.even.2=.1 .px;.3ccl4:.px;.1salt;..216cclxfail..216:not.2salt;..217ccle..217:1 succ.1=.2ccle:charn.l;.1.l;n.m.l;classes.lv.a.rv.l;classmask.o.u1 .pcclb:zeronccl5:.l;classes.lv.l;n.a.rv.l;classmask.x.u.ptestn1 salt;ccl5cclx:.l;nclass.da.pzeronccl6:.l;classes.lv.l;n.a.rv.l;classmask.cm.n.u.ptestn1 salt;ccl6.3=.<too many char classes\0>;.even.2=.1 .tx;.3.1=.1 trans;1 .2cherr:1 diag.1.1=.0zeron:.l;n.l;.1.st1 .p.1=.2.2=.400testn:.l;n.l;.1.a.u.l;.2.lt1 .t.1=.0.4=.<.globl classtab\0>;.even.5=.<classtab:\0>;.even.3=..tn.tx;.4.tn.tx;.51 .tn.2=.1 trans;1 .3.7=..tp;.byte 1,0;1 .tn.6=.octalw1 trans;1 .7putcharcl:zeron.l;classes.l;.1.st.pparse.2ptc1:.l;w.l;classes.lv.l;n.a.rv.st.pparse.6bundletestn1 salt;ptc1classmask:0nclass:0classes:cl1:0000000000000000cl2:0000000000000000cl3:0000000000000000cl4:0000000000000000cl5:0000000000000000cl6:0000000000000000cl7:0000000000000000cl8:0000000000000000done:1 succ.1=..txs;'.1 .tp;.byte 1,0;create:.l;csym.ia.pgetcsym:octalcsym1 trans;1 .1.2=.<..\0>;.even.1=..tx;.21 .tp;.byte 1,0;fref:.l;fsym.ia.pgetfref:octalfsym1 trans;1 .1.1=.1not:params.1[-1\<1]alt;done1 fail.1=.1.2=..tp;.byte 2,0;.tn1 .tp;.byte 1,0;list:params.1[-1\<1]list1:bundle.pxs;',alt;done[-1\<1]trans;1 .21 salt;list1.1=.1remote:params.1create1 parserem1[-1\<1].1=.1.3=.<=.\0>;.even.2=..tp;.byte 2,0;.tx;.3.tn.tp;.byte 1,0;1 .tnrem1:params.1getcsym[-1\<1]1 trans;1 .2number:smarkignorenoneanydigitstringdigit1 scopyname:ident1 scopyident:smarkignorenoneanyletter1 stringalpha.1=.1.3=.0oldtab:params.1.l;[-1\<1].talt;donediscard[-1\<1].l;[-1\<1].l;.3.st1 .p.1=.2.3=.0newtab:params.1.l;[-2\<1].tsalt;..220table[-2\<1].l;[-1\<1].l;.3.st.p..220:enter[-2\<1]i.l;[-2\<1].l;i.f.l;[-1\<1].ia.st1 .p.1=.2tabval:params.1.l;[-2\<1].tfind[-2\<1]i.l;i.l;[-1\<1].l;[-2\<1].l;i.f.s.st.p1 octalinull:1 trans;1 nil.1=.<1 \0>;.evenxbit:1 .tx;.1q1:1 .tq;1q2:1 .tq;2nil:1 generateblanks:10digit:20letter:40alpha:100litch:200none:400csym:0fsym:0easy:0w:0n:0dtt:0ndt:0sndt:0pat:0npa:0ptt:0npt:0i:0.globl classtabclasstab:020720720720720720720720721721720720720720720720720720720720720720720720720720720720720720720721720720720720720720720720720720320720720720720732732732732732732732732732732720720520720772072073473473473473473473473473473473473473473473473473473473473473473473473473473472077207207207207347347347347347347347347347347347347347347347347347347347347347347347347347347207207207207207.pn:1 .pxs;12.tn:1 .txs;12

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -