Browse Source

Plan 9 from Bell Labs 2005-07-06

David du Colombier 16 years ago
parent
commit
823e36725e

+ 22 - 15
dist/replica/_plan9.db

@@ -6595,7 +6595,7 @@ sys/lib/man/preface4 - 664 sys sys 1020082276 1758
 sys/lib/man/secindex - 775 sys sys 956337727 322
 sys/lib/man/title - 664 sys sys 1019915894 746
 sys/lib/man/trademarks - 664 sys sys 958527089 1838
-sys/lib/mimetype - 664 sys sys 1102352651 6153
+sys/lib/mimetype - 664 sys sys 1120564829 6236
 sys/lib/newuser - 775 sys sys 1112362340 1226
 sys/lib/plumb - 20000000775 sys sys 944957365 0
 sys/lib/plumb/basic - 664 sys sys 1118196423 2946
@@ -9152,10 +9152,10 @@ sys/src/cmd/1l - 20000000775 sys sys 954038577 0
 sys/src/cmd/1l/asm.c - 664 sys sys 1089299178 27888
 sys/src/cmd/1l/compat.c - 664 sys sys 946595451 466
 sys/src/cmd/1l/cputime.c - 664 sys sys 944961466 134
-sys/src/cmd/1l/l.h - 664 sys sys 1089299178 4736
+sys/src/cmd/1l/l.h - 664 sys sys 1120557137 4718
 sys/src/cmd/1l/list.c - 664 sys sys 1014926814 4816
-sys/src/cmd/1l/mkfile - 664 sys sys 944961466 314
-sys/src/cmd/1l/obj.c - 664 sys sys 1119493854 23886
+sys/src/cmd/1l/mkfile - 664 sys sys 1120557136 237
+sys/src/cmd/1l/obj.c - 664 sys sys 1120557137 23887
 sys/src/cmd/1l/optab.c - 664 sys sys 947979660 16060
 sys/src/cmd/1l/pass.c - 664 sys sys 1045503930 11701
 sys/src/cmd/1l/span.c - 664 sys sys 1045503931 8925
@@ -9166,7 +9166,7 @@ sys/src/cmd/2a/l.s - 664 sys sys 944960717 9796
 sys/src/cmd/2a/lex.c - 664 sys sys 1089299177 19549
 sys/src/cmd/2a/mkfile - 664 sys sys 944960717 214
 sys/src/cmd/2c - 20000000775 sys sys 954034944 0
-sys/src/cmd/2c/2.out.h - 664 sys sys 1089299176 5075
+sys/src/cmd/2c/2.out.h - 664 sys sys 1120557091 5083
 sys/src/cmd/2c/bits.c - 664 sys sys 944960717 1370
 sys/src/cmd/2c/cgen.c - 664 sys sys 1089299176 28451
 sys/src/cmd/2c/enam.c - 664 sys sys 1089299176 4239
@@ -9183,10 +9183,10 @@ sys/src/cmd/2l - 20000000775 sys sys 954035020 0
 sys/src/cmd/2l/asm.c - 664 sys sys 1045503932 28491
 sys/src/cmd/2l/compat.c - 664 sys sys 946595431 465
 sys/src/cmd/2l/cputime.c - 664 sys sys 944960718 134
-sys/src/cmd/2l/l.h - 664 sys sys 1089299175 4596
+sys/src/cmd/2l/l.h - 664 sys sys 1120557113 4578
 sys/src/cmd/2l/list.c - 664 sys sys 1014924691 5814
 sys/src/cmd/2l/mkfile - 664 sys sys 969512132 237
-sys/src/cmd/2l/obj.c - 664 sys sys 1089299175 24382
+sys/src/cmd/2l/obj.c - 664 sys sys 1120557113 24373
 sys/src/cmd/2l/optab.c - 664 sys sys 947979527 16965
 sys/src/cmd/2l/pass.c - 664 sys sys 1045503934 9412
 sys/src/cmd/2l/span.c - 664 sys sys 1045503935 9612
@@ -9295,10 +9295,10 @@ sys/src/cmd/8c/txt.c - 664 sys sys 1089299180 24215
 sys/src/cmd/8l - 20000000775 sys sys 1017165863 0
 sys/src/cmd/8l/asm.c - 664 sys sys 1107755623 11882
 sys/src/cmd/8l/compat.c - 664 sys sys 944960733 445
-sys/src/cmd/8l/l.h - 664 sys sys 1107721553 5803
+sys/src/cmd/8l/l.h - 664 sys sys 1120557254 5785
 sys/src/cmd/8l/list.c - 664 sys sys 1045503947 4185
 sys/src/cmd/8l/mkfile - 664 sys sys 1032102046 363
-sys/src/cmd/8l/obj.c - 664 sys sys 1107756104 26053
+sys/src/cmd/8l/obj.c - 664 sys sys 1120557253 26041
 sys/src/cmd/8l/optab.c - 664 sys sys 1111156413 16231
 sys/src/cmd/8l/pass.c - 664 sys sys 1095107668 13675
 sys/src/cmd/8l/span.c - 664 sys sys 1107721554 23294
@@ -12338,7 +12338,7 @@ sys/src/cmd/ndb/dns.c - 664 sys sys 1079747686 15333
 sys/src/cmd/ndb/dns.h - 664 sys sys 1079747686 8980
 sys/src/cmd/ndb/dnsdebug.c - 664 sys sys 1079747685 8488
 sys/src/cmd/ndb/dnserver.c - 664 sys sys 1021579994 3687
-sys/src/cmd/ndb/dnsquery.c - 664 sys sys 1014926160 2108
+sys/src/cmd/ndb/dnsquery.c - 664 sys sys 1120564714 2198
 sys/src/cmd/ndb/dnstcp.c - 664 sys sys 1063861697 7085
 sys/src/cmd/ndb/dnudpserver.c - 664 sys sys 1055701924 5277
 sys/src/cmd/ndb/ipquery.c - 664 sys sys 960335375 760
@@ -13862,8 +13862,8 @@ sys/src/fs/sony/mem.h - 664 sys sys 1015110103 2865
 sys/src/fs/sony/mkfile - 664 sys sys 1091803623 1594
 sys/src/fs/worms - 664 sys sys 1015110031 2806
 sys/src/games - 20000000775 sys sys 1095792091 0
-sys/src/games/4s.c - 664 sys sys 1118885272 1466
-sys/src/games/5s.c - 664 sys sys 1118672529 3802
+sys/src/games/4s.c - 664 sys sys 1120564580 1486
+sys/src/games/5s.c - 664 sys sys 1120564580 3822
 sys/src/games/catback.p - 664 sys sys 1108184106 35763
 sys/src/games/catclock.c - 664 sys sys 1108184106 10354
 sys/src/games/eyes.p - 664 sys sys 1108184106 1128
@@ -13943,7 +13943,7 @@ sys/src/games/sudoku/levels.c - 664 sys sys 1117226433 3186
 sys/src/games/sudoku/mkfile - 664 sys sys 1117226432 218
 sys/src/games/sudoku/sudoku.c - 664 sys sys 1117636441 7809
 sys/src/games/sudoku/sudoku.h - 664 sys sys 1117226432 1159
-sys/src/games/xs.h - 664 sys sys 1118886450 14271
+sys/src/games/xs.h - 664 sys sys 1120564579 17389
 sys/src/lib9p - 20000000775 sys sys 1015023311 0
 sys/src/lib9p/_post.c - 664 sys sys 1103565871 1642
 sys/src/lib9p/dirread.c - 664 sys sys 1015023310 641
@@ -14079,6 +14079,7 @@ sys/src/libc/386/vlop.s - 664 sys sys 1067718935 884
 sys/src/libc/386/vlrt.c - 664 sys sys 1067723053 9567
 sys/src/libc/68000 - 20000000775 sys sys 984709478 0
 sys/src/libc/68000/argv0.s - 664 sys sys 1067722826 88
+sys/src/libc/68000/cycles.c - 664 sys sys 1120556959 71
 sys/src/libc/68000/doprint.c - 664 sys sys 944961722 8554
 sys/src/libc/68000/getfcr.s - 664 sys sys 944961722 229
 sys/src/libc/68000/main9.s - 664 sys sys 1067722824 336
@@ -14086,9 +14087,10 @@ sys/src/libc/68000/main9p.s - 664 sys sys 1067722815 586
 sys/src/libc/68000/memccpy.s - 664 sys sys 944961722 333
 sys/src/libc/68000/memchr.s - 664 sys sys 944961722 170
 sys/src/libc/68000/memcmp.s - 664 sys sys 944961722 196
-sys/src/libc/68000/memmove.s - 664 sys sys 944961722 1514
+sys/src/libc/68000/memcpy.s - 664 sys sys 1120557009 1475
+sys/src/libc/68000/memmove.s - 664 sys sys 1120556960 1476
 sys/src/libc/68000/memset.s - 664 sys sys 944961722 634
-sys/src/libc/68000/mkfile - 664 sys sys 1067723171 462
+sys/src/libc/68000/mkfile - 664 sys sys 1120557008 461
 sys/src/libc/68000/muldivrt.s - 664 sys sys 984709478 2033
 sys/src/libc/68000/notejmp.c - 664 sys sys 944961722 282
 sys/src/libc/68000/scale.s - 664 sys sys 944961722 67
@@ -15048,3 +15050,8 @@ usr/glenda/lib/profile - 664 glenda glenda 1105128663 890
 usr/glenda/readme.acme - 664 glenda glenda 1019860628 4753
 usr/glenda/readme.rio - 664 glenda glenda 1019860628 6370
 usr/glenda/tmp - 20000000775 glenda glenda 1018802620 0
+386/bin/8l - 775 sys sys 1120619353 115703
+386/bin/games/4s - 775 sys sys 1120619353 177844
+386/bin/games/5s - 775 sys sys 1120619353 180356
+386/bin/ndb/dnsquery - 775 sys sys 1120619354 63643
+386/lib/libmach.a - 664 sys sys 1120619355 755696

+ 22 - 20
dist/replica/plan9.db

@@ -16,7 +16,7 @@
 386/bin - 20000000775 sys sys 1018897690 0
 386/bin/8a - 775 sys sys 1115950022 115096
 386/bin/8c - 775 sys sys 1119496639 358027
-386/bin/8l - 775 sys sys 1115950023 115728
+386/bin/8l - 775 sys sys 1120619353 115703
 386/bin/9660srv - 775 sys sys 1115950023 104037
 386/bin/aan - 775 sys sys 1115950023 130710
 386/bin/acid - 775 sys sys 1119496640 390040
@@ -245,8 +245,8 @@
 386/bin/fs/zipfs - 775 sys sys 1115950074 109088
 386/bin/ftpfs - 775 sys sys 1116903732 271518
 386/bin/games - 20000000775 sys sys 1096298711 0
-386/bin/games/4s - 775 sys sys 1118891246 175563
-386/bin/games/5s - 775 sys sys 1118891246 178075
+386/bin/games/4s - 775 sys sys 1120619353 177844
+386/bin/games/5s - 775 sys sys 1120619353 180356
 386/bin/games/catclock - 775 sys sys 1115950075 140798
 386/bin/games/juggle - 775 sys sys 1118202754 125319
 386/bin/games/jukebox - 775 sys sys 1105589128 264821
@@ -334,7 +334,7 @@
 386/bin/ndb/csquery - 775 sys sys 1115950095 61476
 386/bin/ndb/dns - 775 sys sys 1119496651 219934
 386/bin/ndb/dnsdebug - 775 sys sys 1119496652 194546
-386/bin/ndb/dnsquery - 775 sys sys 1115950096 63790
+386/bin/ndb/dnsquery - 775 sys sys 1120619354 63643
 386/bin/ndb/dnstcp - 775 sys sys 1119496652 193187
 386/bin/ndb/ipquery - 775 sys sys 1116126323 95480
 386/bin/ndb/mkdb - 775 sys sys 1115950097 63982
@@ -552,7 +552,7 @@
 386/lib/libhttpd.a - 664 sys sys 1115950154 99488
 386/lib/libip.a - 664 sys sys 1116126324 35602
 386/lib/libl.a - 664 sys sys 1115950154 5384
-386/lib/libmach.a - 664 sys sys 1119496671 755696
+386/lib/libmach.a - 664 sys sys 1120619355 755696
 386/lib/libmemdraw.a - 664 sys sys 1115950157 283978
 386/lib/libmemlayer.a - 664 sys sys 1115950157 47360
 386/lib/libmp.a - 664 sys sys 1115950157 79532
@@ -6595,7 +6595,7 @@ sys/lib/man/preface4 - 664 sys sys 1020082276 1758
 sys/lib/man/secindex - 775 sys sys 956337727 322
 sys/lib/man/title - 664 sys sys 1019915894 746
 sys/lib/man/trademarks - 664 sys sys 958527089 1838
-sys/lib/mimetype - 664 sys sys 1102352651 6153
+sys/lib/mimetype - 664 sys sys 1120564829 6236
 sys/lib/newuser - 775 sys sys 1112362340 1226
 sys/lib/plumb - 20000000775 sys sys 944957365 0
 sys/lib/plumb/basic - 664 sys sys 1118196423 2946
@@ -9152,10 +9152,10 @@ sys/src/cmd/1l - 20000000775 sys sys 954038577 0
 sys/src/cmd/1l/asm.c - 664 sys sys 1089299178 27888
 sys/src/cmd/1l/compat.c - 664 sys sys 946595451 466
 sys/src/cmd/1l/cputime.c - 664 sys sys 944961466 134
-sys/src/cmd/1l/l.h - 664 sys sys 1089299178 4736
+sys/src/cmd/1l/l.h - 664 sys sys 1120557137 4718
 sys/src/cmd/1l/list.c - 664 sys sys 1014926814 4816
-sys/src/cmd/1l/mkfile - 664 sys sys 944961466 314
-sys/src/cmd/1l/obj.c - 664 sys sys 1119493854 23886
+sys/src/cmd/1l/mkfile - 664 sys sys 1120557136 237
+sys/src/cmd/1l/obj.c - 664 sys sys 1120557137 23887
 sys/src/cmd/1l/optab.c - 664 sys sys 947979660 16060
 sys/src/cmd/1l/pass.c - 664 sys sys 1045503930 11701
 sys/src/cmd/1l/span.c - 664 sys sys 1045503931 8925
@@ -9166,7 +9166,7 @@ sys/src/cmd/2a/l.s - 664 sys sys 944960717 9796
 sys/src/cmd/2a/lex.c - 664 sys sys 1089299177 19549
 sys/src/cmd/2a/mkfile - 664 sys sys 944960717 214
 sys/src/cmd/2c - 20000000775 sys sys 954034944 0
-sys/src/cmd/2c/2.out.h - 664 sys sys 1089299176 5075
+sys/src/cmd/2c/2.out.h - 664 sys sys 1120557091 5083
 sys/src/cmd/2c/bits.c - 664 sys sys 944960717 1370
 sys/src/cmd/2c/cgen.c - 664 sys sys 1089299176 28451
 sys/src/cmd/2c/enam.c - 664 sys sys 1089299176 4239
@@ -9183,10 +9183,10 @@ sys/src/cmd/2l - 20000000775 sys sys 954035020 0
 sys/src/cmd/2l/asm.c - 664 sys sys 1045503932 28491
 sys/src/cmd/2l/compat.c - 664 sys sys 946595431 465
 sys/src/cmd/2l/cputime.c - 664 sys sys 944960718 134
-sys/src/cmd/2l/l.h - 664 sys sys 1089299175 4596
+sys/src/cmd/2l/l.h - 664 sys sys 1120557113 4578
 sys/src/cmd/2l/list.c - 664 sys sys 1014924691 5814
 sys/src/cmd/2l/mkfile - 664 sys sys 969512132 237
-sys/src/cmd/2l/obj.c - 664 sys sys 1089299175 24382
+sys/src/cmd/2l/obj.c - 664 sys sys 1120557113 24373
 sys/src/cmd/2l/optab.c - 664 sys sys 947979527 16965
 sys/src/cmd/2l/pass.c - 664 sys sys 1045503934 9412
 sys/src/cmd/2l/span.c - 664 sys sys 1045503935 9612
@@ -9295,10 +9295,10 @@ sys/src/cmd/8c/txt.c - 664 sys sys 1089299180 24215
 sys/src/cmd/8l - 20000000775 sys sys 1017165863 0
 sys/src/cmd/8l/asm.c - 664 sys sys 1107755623 11882
 sys/src/cmd/8l/compat.c - 664 sys sys 944960733 445
-sys/src/cmd/8l/l.h - 664 sys sys 1107721553 5803
+sys/src/cmd/8l/l.h - 664 sys sys 1120557254 5785
 sys/src/cmd/8l/list.c - 664 sys sys 1045503947 4185
 sys/src/cmd/8l/mkfile - 664 sys sys 1032102046 363
-sys/src/cmd/8l/obj.c - 664 sys sys 1107756104 26053
+sys/src/cmd/8l/obj.c - 664 sys sys 1120557253 26041
 sys/src/cmd/8l/optab.c - 664 sys sys 1111156413 16231
 sys/src/cmd/8l/pass.c - 664 sys sys 1095107668 13675
 sys/src/cmd/8l/span.c - 664 sys sys 1107721554 23294
@@ -12338,7 +12338,7 @@ sys/src/cmd/ndb/dns.c - 664 sys sys 1079747686 15333
 sys/src/cmd/ndb/dns.h - 664 sys sys 1079747686 8980
 sys/src/cmd/ndb/dnsdebug.c - 664 sys sys 1079747685 8488
 sys/src/cmd/ndb/dnserver.c - 664 sys sys 1021579994 3687
-sys/src/cmd/ndb/dnsquery.c - 664 sys sys 1014926160 2108
+sys/src/cmd/ndb/dnsquery.c - 664 sys sys 1120564714 2198
 sys/src/cmd/ndb/dnstcp.c - 664 sys sys 1063861697 7085
 sys/src/cmd/ndb/dnudpserver.c - 664 sys sys 1055701924 5277
 sys/src/cmd/ndb/ipquery.c - 664 sys sys 960335375 760
@@ -13862,8 +13862,8 @@ sys/src/fs/sony/mem.h - 664 sys sys 1015110103 2865
 sys/src/fs/sony/mkfile - 664 sys sys 1091803623 1594
 sys/src/fs/worms - 664 sys sys 1015110031 2806
 sys/src/games - 20000000775 sys sys 1095792091 0
-sys/src/games/4s.c - 664 sys sys 1118885272 1466
-sys/src/games/5s.c - 664 sys sys 1118672529 3802
+sys/src/games/4s.c - 664 sys sys 1120564580 1486
+sys/src/games/5s.c - 664 sys sys 1120564580 3822
 sys/src/games/catback.p - 664 sys sys 1108184106 35763
 sys/src/games/catclock.c - 664 sys sys 1108184106 10354
 sys/src/games/eyes.p - 664 sys sys 1108184106 1128
@@ -13943,7 +13943,7 @@ sys/src/games/sudoku/levels.c - 664 sys sys 1117226433 3186
 sys/src/games/sudoku/mkfile - 664 sys sys 1117226432 218
 sys/src/games/sudoku/sudoku.c - 664 sys sys 1117636441 7809
 sys/src/games/sudoku/sudoku.h - 664 sys sys 1117226432 1159
-sys/src/games/xs.h - 664 sys sys 1118886450 14271
+sys/src/games/xs.h - 664 sys sys 1120564579 17389
 sys/src/lib9p - 20000000775 sys sys 1015023311 0
 sys/src/lib9p/_post.c - 664 sys sys 1103565871 1642
 sys/src/lib9p/dirread.c - 664 sys sys 1015023310 641
@@ -14079,6 +14079,7 @@ sys/src/libc/386/vlop.s - 664 sys sys 1067718935 884
 sys/src/libc/386/vlrt.c - 664 sys sys 1067723053 9567
 sys/src/libc/68000 - 20000000775 sys sys 984709478 0
 sys/src/libc/68000/argv0.s - 664 sys sys 1067722826 88
+sys/src/libc/68000/cycles.c - 664 sys sys 1120556959 71
 sys/src/libc/68000/doprint.c - 664 sys sys 944961722 8554
 sys/src/libc/68000/getfcr.s - 664 sys sys 944961722 229
 sys/src/libc/68000/main9.s - 664 sys sys 1067722824 336
@@ -14086,9 +14087,10 @@ sys/src/libc/68000/main9p.s - 664 sys sys 1067722815 586
 sys/src/libc/68000/memccpy.s - 664 sys sys 944961722 333
 sys/src/libc/68000/memchr.s - 664 sys sys 944961722 170
 sys/src/libc/68000/memcmp.s - 664 sys sys 944961722 196
-sys/src/libc/68000/memmove.s - 664 sys sys 944961722 1514
+sys/src/libc/68000/memcpy.s - 664 sys sys 1120557009 1475
+sys/src/libc/68000/memmove.s - 664 sys sys 1120556960 1476
 sys/src/libc/68000/memset.s - 664 sys sys 944961722 634
-sys/src/libc/68000/mkfile - 664 sys sys 1067723171 462
+sys/src/libc/68000/mkfile - 664 sys sys 1120557008 461
 sys/src/libc/68000/muldivrt.s - 664 sys sys 984709478 2033
 sys/src/libc/68000/notejmp.c - 664 sys sys 944961722 282
 sys/src/libc/68000/scale.s - 664 sys sys 944961722 67

+ 22 - 0
dist/replica/plan9.log

@@ -19595,3 +19595,25 @@
 1120015822 1 c 386/bin/sshnet - 775 sys sys 1120014538 282738
 1120015822 2 c 386/bin/tar - 775 sys sys 1120014538 96347
 1120503610 0 c sys/games/lib/fortunes - 664 sys sys 1120502468 254088
+1120557623 0 c sys/src/cmd/2c/2.out.h - 664 sys sys 1120557091 5083
+1120557623 1 c sys/src/cmd/2l/l.h - 664 sys sys 1120557113 4578
+1120557623 2 c sys/src/cmd/2l/obj.c - 664 sys sys 1120557113 24373
+1120557623 3 c sys/src/cmd/8l/l.h - 664 sys sys 1120557254 5785
+1120557623 4 c sys/src/cmd/8l/obj.c - 664 sys sys 1120557253 26041
+1120557623 5 c sys/src/cmd/1l/l.h - 664 sys sys 1120557137 4718
+1120557623 6 c sys/src/cmd/1l/mkfile - 664 sys sys 1120557136 237
+1120557623 7 c sys/src/cmd/1l/obj.c - 664 sys sys 1120557137 23887
+1120557623 8 a sys/src/libc/68000/cycles.c - 664 sys sys 1120556959 71
+1120557623 9 a sys/src/libc/68000/memcpy.s - 664 sys sys 1120557009 1475
+1120557623 10 c sys/src/libc/68000/memmove.s - 664 sys sys 1120556960 1476
+1120557623 11 c sys/src/libc/68000/mkfile - 664 sys sys 1120557008 461
+1120564824 0 c sys/lib/mimetype - 664 sys sys 1120564829 6236
+1120564824 1 c sys/src/cmd/ndb/dnsquery.c - 664 sys sys 1120564714 2198
+1120564824 2 c sys/src/games/4s.c - 664 sys sys 1120564580 1486
+1120564824 3 c sys/src/games/5s.c - 664 sys sys 1120564580 3822
+1120564824 4 c sys/src/games/xs.h - 664 sys sys 1120564579 17389
+1120620638 0 c 386/bin/8l - 775 sys sys 1120619353 115703
+1120620638 1 c 386/bin/games/4s - 775 sys sys 1120619353 177844
+1120620638 2 c 386/bin/games/5s - 775 sys sys 1120619353 180356
+1120620638 3 c 386/bin/ndb/dnsquery - 775 sys sys 1120619354 63643
+1120620638 4 c 386/lib/libmach.a - 664 sys sys 1120619355 755696

+ 3 - 0
sys/lib/mimetype

@@ -1,4 +1,6 @@
 #suffix		generic type	specific type	encoding	safe? y=yes, m=maybe, n=no, p=previous.suffix, r=mailreject
+.3gp		video		3gpp		-		y
+.3gpp		video		3gpp		-		y
 .C		text		plain		-		y # C++ program
 .Z		-		-		compress	m
 .a		application	octet-stream	-		y
@@ -162,3 +164,4 @@
 -		application	x-gunzip	-		p # type for .tar.gz
 -		message		delivery-status	-		y # mail bounces
 -		application	pgp-signature	-		y
+-		application	pgp-encrypted	-		y

+ 0 - 1
sys/src/cmd/1l/l.h

@@ -183,7 +183,6 @@ EXTERN	char	inuxi4[4];
 EXTERN	Prog*	lastp;
 EXTERN	long	lcsize;
 EXTERN	long	relocsize;
-EXTERN	int	maxop;
 EXTERN	long	ndata;
 EXTERN	int	nerrors;
 EXTERN	long	nhunk;

+ 0 - 9
sys/src/cmd/1l/mkfile

@@ -15,17 +15,8 @@ HFILES=\
 	l.h\
 	../2c/2.out.h\
 
-go:V:	$O.out
-	$O.out -H2 *.1
-
 BIN=/$objtype/bin
 </sys/src/cmd/mkone
 
 enam.$O:	../2c/enam.c
 	$CC $CFLAGS ../2c/enam.c
-
-%.1:	%.s
-	1a $stem.s
-
-%.1:	%.c
-	1c -w $stem.c

+ 2 - 3
sys/src/cmd/1l/obj.c

@@ -161,7 +161,6 @@ main(int argc, char *argv[])
 			diag("phase error in optab: %d", i);
 			errorexit();
 		}
-	maxop = i;
 
 	zprg.link = P;
 	zprg.pcond = P;
@@ -706,11 +705,11 @@ loop:
 		goto loop;
 	}
 	o = bloc[0] | (bloc[1] << 8);
-	if(o <= 0 || o >= maxop) {
+	if(o <= AXXX || o >= ALAST) {
 		if(o < 0)
 			goto eof;
 		diag("%s: opcode out of range %d", pn, o);
-		print("	probably not a .2 file\n");
+		print("	probably not a .%c file\n", thechar);
 		errorexit();
 	}
 

+ 2 - 0
sys/src/cmd/2c/2.out.h

@@ -431,6 +431,8 @@ enum	as
 	AUNPK,
 	AWORD,
 	ASIGNAME,
+
+	ALAST
 };
 
 enum

+ 0 - 1
sys/src/cmd/2l/l.h

@@ -174,7 +174,6 @@ EXTERN	char	inuxi2[2];
 EXTERN	char	inuxi4[4];
 EXTERN	Prog*	lastp;
 EXTERN	long	lcsize;
-EXTERN	int	maxop;
 EXTERN	long	ncase;
 EXTERN	long	ndata;
 EXTERN	int	nerrors;

+ 1 - 2
sys/src/cmd/2l/obj.c

@@ -163,7 +163,6 @@ main(int argc, char *argv[])
 			diag("phase error in optab: %d", i);
 			errorexit();
 		}
-	maxop = i;
 
 	zprg.link = P;
 	zprg.pcond = P;
@@ -721,7 +720,7 @@ loop:
 		goto loop;
 	}
 	o = bloc[0] | (bloc[1] << 8);
-	if(o <= 0 || o >= maxop) {
+	if(o <= AXXX || o >= ALAST) {
 		if(o < 0)
 			goto eof;
 		diag("%s: opcode out of range %d", pn, o);

+ 0 - 1
sys/src/cmd/8l/l.h

@@ -248,7 +248,6 @@ EXTERN	uchar	and[30];
 EXTERN	char	reg[D_NONE];
 EXTERN	Prog*	lastp;
 EXTERN	long	lcsize;
-EXTERN	int	maxop;
 EXTERN	int	nerrors;
 EXTERN	long	nhunk;
 EXTERN	long	nsymbol;

+ 0 - 1
sys/src/cmd/8l/obj.c

@@ -195,7 +195,6 @@ main(int argc, char *argv[])
 			diag("phase error in optab: %d", i);
 			errorexit();
 		}
-	maxop = i;
 
 	for(i=0; i<Ymax; i++)
 		ycover[i*Ymax + i] = 1;

+ 12 - 5
sys/src/cmd/ndb/dnsquery.c

@@ -1,6 +1,7 @@
 #include <u.h>
 #include <libc.h>
 #include <bio.h>
+#include <ctype.h>
 #include <ndb.h>
 #include "dns.h"
 #include "ip.h"
@@ -56,13 +57,19 @@ main(int argc, char *argv[])
 	}
 	Binit(&in, 0, OREAD);
 	for(print("> "); lp = Brdline(&in, '\n'); print("> ")){
-		n = Blinelen(&in)-1;
-		strncpy(line, lp, n);
-		line[n] = 0;
-		if (n<=1)
+		n = Blinelen(&in) -1;
+		while(isspace(lp[n]))
+			lp[n--] = 0;
+		n++;
+		while(isspace(*lp)){
+			lp++;
+			n--;
+		}
+		if(!*lp)
 			continue;
+		strcpy(line, lp);
 		/* default to an "ip" request if alpha, "ptr" if numeric */
-		if (strchr(line, ' ')==0) {
+		if(strchr(line, ' ')==0) {
 			if(strcmp(ipattr(line), "ip") == 0) {
 				strcat(line, " ptr");
 				n += 4;

+ 1 - 0
sys/src/games/4s.c

@@ -2,6 +2,7 @@
 #include <libc.h>
 #include <draw.h>
 #include <thread.h>
+#include <cursor.h>
 #include <mouse.h>
 #include <keyboard.h>
 

+ 1 - 0
sys/src/games/5s.c

@@ -2,6 +2,7 @@
 #include <libc.h>
 #include <draw.h>
 #include <thread.h>
+#include <cursor.h>
 #include <mouse.h>
 #include <keyboard.h>
 

+ 200 - 42
sys/src/games/xs.h

@@ -3,6 +3,18 @@
  * need to define N and pieces table before including this
  */
 
+Cursor whitearrow = {
+	{0, 0},
+	{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFE, 0xFF, 0xFC, 
+	 0xFF, 0xF0, 0xFF, 0xF0, 0xFF, 0xF8, 0xFF, 0xFC, 
+	 0xFF, 0xFE, 0xFF, 0xFF, 0xFF, 0xFE, 0xFF, 0xFC, 
+	 0xF3, 0xF8, 0xF1, 0xF0, 0xE0, 0xE0, 0xC0, 0x40, },
+	{0xFF, 0xFF, 0xFF, 0xFF, 0xC0, 0x06, 0xC0, 0x1C, 
+	 0xC0, 0x30, 0xC0, 0x30, 0xC0, 0x38, 0xC0, 0x1C, 
+	 0xC0, 0x0E, 0xC0, 0x07, 0xCE, 0x0E, 0xDF, 0x1C, 
+	 0xD3, 0xB8, 0xF1, 0xF0, 0xE0, 0xE0, 0xC0, 0x40, }
+};
+
 enum
 {
 	CNone	= 0,
@@ -17,7 +29,7 @@ enum{
 	MOUSE,
 	RESHAPE,
 	KBD,
-	NONBLOCK,
+	SUSPEND,
 	NALT
 };
 
@@ -37,10 +49,15 @@ int		dt;
 int		DY;
 int		DMOUSE;
 int		lastmx;
+Mouse	mouse;
 int		newscreen;
 Channel	*timerc;
+Channel	*suspc;
+Channel	*mousec;
+Channel	*kbdc;
 Mousectl	*mousectl;
-Keyboardctl	*keyboardctl;
+Keyboardctl	*kbdctl;
+int		suspended;
 
 void		redraw(int);
 
@@ -108,6 +125,28 @@ int txpix[NCOL] = {
 
 Image *tx[NCOL];
 
+int
+movemouse(void)
+{
+	mouse.xy = Pt(rboard.min.x + Dx(rboard)/2, rboard.min.y +Dy(rboard)/2);
+	moveto(mousectl, mouse.xy);
+	return mouse.xy.x;
+}
+
+int
+warp(Point p, int x)
+{
+	if (!suspended && piece != nil) {
+		x = pos.x + piece->sz.x*pcsz/2;
+		if (p.y < rboard.min.y)
+			p.y = rboard.min.y;
+		if (p.y >= rboard.max.y)
+			p.y = rboard.max.y - 1;
+		moveto(mousectl, Pt(x, p.y));
+	}
+	return x;
+}
+
 Piece *
 rotr(Piece *p)
 {
@@ -207,6 +246,8 @@ setpiece(Piece *p){
 void
 drawpiece(void){
 	draw(screen, rectaddpt(br, pos), bb, bbmask, bb->r.min);
+	if (suspended)
+		draw(screen, rectaddpt(br, pos), display->white, whitemask, ZP);
 }
 
 void
@@ -296,6 +337,8 @@ drawboard(void)
 			if(board[i][j])
 				drawsq(screen, Pt(rboard.min.x+j*pcsz, rboard.min.y+i*pcsz), board[i][j]-16);
 	score(0);
+	if (suspended)
+		draw(screen, screen->r, display->white, whitemask, ZP);
 }
 
 void
@@ -310,7 +353,6 @@ choosepiece(void)
 		pos.x += nrand(NX)*pcsz;
 	}while(collide(Pt(pos.x, pos.y+pcsz-DY), piece));
 	drawpiece();
-	moveto(mousectl, Pt(rboard.min.x + Dx(rboard)/2, rboard.min.y +Dy(rboard)/2));
 	flushimage(display, 1);
 }
 
@@ -329,15 +371,66 @@ movepiece(void)
 	return 1;
 }
 
+void
+suspend(int s)
+{
+	suspended = s;
+	if (suspended)
+		setcursor(mousectl, &whitearrow);
+	else
+		setcursor(mousectl, nil);
+	if (!suspended)
+		drawpiece();
+	drawboard();
+	flushimage(display, 1);
+}
+
 void
 pause(int t)
 {
+	int s;
+	Alt alts[NALT+1];
+
+	alts[TIMER].c = timerc;
+	alts[TIMER].v = nil;
+	alts[TIMER].op = CHANRCV;
+	alts[SUSPEND].c = suspc;
+	alts[SUSPEND].v = &s;
+	alts[SUSPEND].op = CHANRCV;
+	alts[RESHAPE].c = mousectl->resizec;
+	alts[RESHAPE].v = nil;
+	alts[RESHAPE].op = CHANRCV;
+	// avoid hanging up those writing ong mousec and kbdc
+	// so just accept it all and keep mouse up-to-date
+	alts[MOUSE].c = mousec;
+	alts[MOUSE].v = &mouse;
+	alts[MOUSE].op = CHANRCV;
+	alts[KBD].c = kbdc;
+	alts[KBD].v = nil;
+	alts[KBD].op = CHANRCV;
+	alts[NALT].op = CHANEND;
+
 	flushimage(display, 1);
-	while(nbrecv(timerc, nil) == 1)
-		;
-	while(recv(timerc, nil) == 1)
-		if((t -= tsleep) < 0)
+	for(;;)
+		switch(alt(alts)){
+		case SUSPEND:
+			if (!suspended && s) {
+				suspend(1);
+			} else if (suspended && !s) {
+				suspend(0);
+				lastmx = warp(mouse.xy, lastmx);
+			}
 			break;
+		case TIMER:
+			if(suspended)
+				break;
+			if((t -= tsleep) < 0)
+				return;
+			break;
+		case RESHAPE:
+			redraw(1);
+			break;		
+		}
 }
 
 int
@@ -365,8 +458,8 @@ horiz(void)
 		draw(screen, r, display->white, whitemask, ZP);
 		flushimage(display, 1);
 	}
-	for(i=0; i<5; i++){
-		pause(500);
+	for(i=0; i<3; i++){
+		pause(250);
 		if(newscreen){
 			drawboard();
 			break;
@@ -442,8 +535,6 @@ int fusst = 0;
 int
 drop(int f)
 {
-	Mouse mouse;
-
 	if(f){
 		score(5L*(rboard.max.y-pos.y)/pcsz);
 		do; while(movepiece());
@@ -456,10 +547,7 @@ drop(int f)
 	setpiece(0);
 	pause(1500);
 	choosepiece();
-	while(nbrecv(mousectl->c, &mouse) == 1)
-		lastmx = mouse.xy.x;
-	while(nbrecv(keyboardctl->c, nil) == 1)
-		;
+	lastmx = warp(mouse.xy, lastmx);
 	return 0;
 }
 
@@ -467,42 +555,40 @@ int
 play(void)
 {
 	int i;
-	int suspended;
 	Mouse om;
-	Mouse mouse;
+	int s;
 	Rune r;
 	Alt alts[NALT+1];
 
 	alts[TIMER].c = timerc;
 	alts[TIMER].v = nil;
 	alts[TIMER].op = CHANRCV;
-	alts[MOUSE].c = mousectl->c;
+	alts[MOUSE].c = mousec;
 	alts[MOUSE].v = &mouse;
 	alts[MOUSE].op = CHANRCV;
+	alts[SUSPEND].c = suspc;
+	alts[SUSPEND].v = &s;
+	alts[SUSPEND].op = CHANRCV;
 	alts[RESHAPE].c = mousectl->resizec;
 	alts[RESHAPE].v = nil;
 	alts[RESHAPE].op = CHANRCV;
-	alts[KBD].c = keyboardctl->c;
+	alts[KBD].c = kbdc;
 	alts[KBD].v = &r;
 	alts[KBD].op = CHANRCV;
-	alts[NONBLOCK].c = nil;
-	alts[NONBLOCK].v = nil;
-	alts[NONBLOCK].op = CHANNOBLK;
 	alts[NALT].op = CHANEND;
 
-	/* flush the pipe */
-	while(alt(alts) != NONBLOCK)
-		;
-	alts[NONBLOCK].op = CHANEND;
-
 	dt = 64;
-	suspended = 0;
+	lastmx = -1;
+	lastmx = movemouse();
 	choosepiece();
+	lastmx = warp(mouse.xy, lastmx);
 	for(;;)
 	switch(alt(alts)){
 	case MOUSE:
-		if(suspended)
+		if(suspended) {
+			om = mouse;
 			break;
+		}
 		if(lastmx < 0)
 			lastmx = mouse.xy.x;
 		if(mouse.xy.x > lastmx+DMOUSE){
@@ -522,19 +608,22 @@ play(void)
 			rright();
 		om = mouse;
 		break;
+	case SUSPEND:
+		if (!suspended && s)
+			suspend(1);
+		else
+		if (suspended && !s) {
+			suspend(0);
+			lastmx = warp(mouse.xy, lastmx);
+		}
+		break;
 	case RESHAPE:
 		redraw(1);
 		break;		
 	case KBD:
-		if(suspended) {
-			suspended = 0;
+		if(suspended)
 			break;
-		}
 		switch(r){
-		case 'q':
-		case 'Q':
-		case 0x04:
-			return 0;
 		case 'f':
 		case ';':
 			mright();
@@ -555,9 +644,6 @@ play(void)
 			if(drop(1))
 				return 1;
 			break;
-		case 'z':
-			suspended = 1;
-			break;
 		}
 		break;
 	case TIMER:
@@ -618,6 +704,73 @@ timerproc(void *v)
 	}
 }
 
+void
+suspproc(void *)
+{
+	Mouse mouse;
+	Point lastm;
+	Rune r;
+	int s;
+	Alt alts[NALT+1];
+
+	alts[TIMER].op = CHANNOP;
+	alts[MOUSE].c = mousectl->c;
+	alts[MOUSE].v = &mouse;
+	alts[MOUSE].op = CHANRCV;
+	alts[SUSPEND].op = CHANNOP;
+	alts[RESHAPE].op = CHANNOP;
+	alts[KBD].c = kbdctl->c;
+	alts[KBD].v = &r;
+	alts[KBD].op = CHANRCV;
+	alts[NALT].op = CHANEND;
+
+	s = 0;
+	lastm = Pt(-1,-1);
+	for(;;)
+		switch(alt(alts)){
+		case MOUSE:
+			send(mousec, &mouse);
+			if(lastm.x < 0 || lastm.y < 0)
+				lastm = mouse.xy;
+			if(s && ptinrect(mouse.xy, rboard) && !ptinrect(lastm, rboard)){
+				s = 0;
+				send(suspc, &s);
+			} else
+			if(!s && !ptinrect(mouse.xy,rboard)){
+				s = 1;
+				send(suspc, &s);
+			}
+			lastm = mouse.xy;
+			break;
+		case KBD:
+			switch(r){
+			case 'q':
+			case 'Q':
+			case 0x04:
+			case 0x7F:
+				threadexitsall(nil);
+			default:
+				if(s) {
+					s = 0;
+					send(suspc, &s);
+				} else
+					switch(r){
+					case 'z':
+					case 'Z':
+					case 'p':
+					case 'P':
+					case 0x1B:
+						s = 1;
+						send(suspc, &s);
+						break;
+					default:
+						send(kbdc, &r);
+					}
+				break;
+			}
+		}
+}
+
 void
 redraw(int new)
 {
@@ -668,7 +821,7 @@ redraw(int new)
 	setpiece(piece);
 	if(piece)
 		drawpiece();
-	lastmx = -1;
+	lastmx = movemouse();
 	newscreen = 1;
 	flushimage(display, 1);
 }
@@ -684,14 +837,15 @@ threadmain(int argc, char *argv[])
 	ARGBEGIN{
 	}ARGEND
 
+	suspended = 0;
 	setparms();
 	snprint(buf, sizeof(buf), "%ds", N);
 	initdraw(0, 0, buf);
 	mousectl = initmouse(nil, display->image);	/* BUG? */
 	if(mousectl == nil)
 		sysfatal("[45]s: mouse init failed: %r");
-	keyboardctl = initkeyboard(nil);	/* BUG? */
-	if(keyboardctl == nil)
+	kbdctl = initkeyboard(nil);	/* BUG? */
+	if(kbdctl == nil)
 		sysfatal("[45]s: keyboard init failed: %r");
 	starttime = time(0);
 	srand(starttime);
@@ -724,6 +878,10 @@ threadmain(int argc, char *argv[])
 	threadsetname("4s-5s");
 	timerc= chancreate(sizeof(int), 0);
 	proccreate(timerproc, timerc, 1024);
+	suspc= chancreate(sizeof(int), 0);
+	mousec= chancreate(sizeof(Mouse), 0);
+	kbdc= chancreate(sizeof(Rune), 0);
+	threadcreate(suspproc, nil, 1024);
 	points = 0;
 	memset(board, 0, sizeof(board));
 	redraw(0);

+ 7 - 0
sys/src/libc/68000/cycles.c

@@ -0,0 +1,7 @@
+#include <u.h>
+#include <libc.h>
+
+void	cycles(uvlong*u)
+{
+	*u = 0LL;
+}

+ 120 - 0
sys/src/libc/68000/memcpy.s

@@ -0,0 +1,120 @@
+	TEXT	memcpy(SB), $0
+
+	MOVL	n+8(FP), R0	/* count */
+	BEQ	return
+	BGT	ok
+	MOVL	0, R0
+ok:
+	MOVL	s1+0(FP), A2	/* dest pointer */
+	MOVL	s2+4(FP), A1	/* source pointer */
+
+	CMPL	A2,A1
+	BHI	back
+
+/*
+ * byte-at-a-time foreward copy to
+ * get source (A1) alligned.
+ */
+f1:
+	MOVL	A1, R1
+	ANDL	$3, R1
+	BEQ	f2
+	SUBL	$1, R0
+	BLT	return
+	MOVB	(A1)+, (A2)+
+	BRA	f1
+
+/*
+ * check that dest is alligned
+ * if not, just go byte-at-a-time
+ */
+f2:
+	MOVL	A2, R1
+	ANDL	$3, R1
+	BEQ	f3
+	SUBL	$1, R0
+	BLT	return
+	BRA	f5
+/*
+ * quad-long-at-a-time forward copy
+ */
+f3:
+	SUBL	$16, R0
+	BLT	f4
+	MOVL	(A1)+, (A2)+
+	MOVL	(A1)+, (A2)+
+	MOVL	(A1)+, (A2)+
+	MOVL	(A1)+, (A2)+
+	BRA	f3
+
+/*
+ * cleanup byte-at-a-time
+ */
+f4:
+	ADDL	$15, R0
+	BLT	return
+f5:
+	MOVB	(A1)+, (A2)+
+	SUBL	$1, R0
+	BGE	f5
+	BRA	return
+
+return:
+	MOVL	s1+0(FP),R0
+	RTS
+
+/*
+ * everything the same, but
+ * copy backwards
+ */
+back:
+	ADDL	R0, A1
+	ADDL	R0, A2
+
+/*
+ * byte-at-a-time backward copy to
+ * get source (A1) alligned.
+ */
+b1:
+	MOVL	A1, R1
+	ANDL	$3, R1
+	BEQ	b2
+	SUBL	$1, R0
+	BLT	return
+	MOVB	-(A1), -(A2)
+	BRA	b1
+
+/*
+ * check that dest is alligned
+ * if not, just go byte-at-a-time
+ */
+b2:
+	MOVL	A2, R1
+	ANDL	$3, R1
+	BEQ	b3
+	SUBL	$1, R0
+	BLT	return
+	BRA	b5
+/*
+ * quad-long-at-a-time backward copy
+ */
+b3:
+	SUBL	$16, R0
+	BLT	b4
+	MOVL	-(A1), -(A2)
+	MOVL	-(A1), -(A2)
+	MOVL	-(A1), -(A2)
+	MOVL	-(A1), -(A2)
+	BRA	b3
+
+/*
+ * cleanup byte-at-a-time backward
+ */
+b4:
+	ADDL	$15, R0
+	BLT	return
+b5:
+	MOVB	-(A1), -(A2)
+	SUBL	$1, R0
+	BGE	b5
+	BRA	return

+ 0 - 4
sys/src/libc/68000/memmove.s

@@ -1,8 +1,4 @@
 	TEXT	memmove(SB), $0
-	BRA	move
-
-	TEXT	memcpy(SB), $0
-move:
 
 	MOVL	n+8(FP), R0	/* count */
 	BEQ	return

+ 1 - 1
sys/src/libc/68000/mkfile

@@ -10,6 +10,7 @@ SFILES=\
 	memccpy.s\
 	memchr.s\
 	memcmp.s\
+	memcpy.s\
 	memmove.s\
 	memset.s\
 	muldivrt.s\
@@ -24,7 +25,6 @@ SFILES=\
 
 CFILES=\
 	cycles.c\
-	doprint.c\
 	notejmp.c\
 	vlrt.c\