Raw File
ar2.tv
ørŒAð9ð«òjýõáð@(`@@ò@€0 @`ð @ @  `@h8ð@p `@xðÀ€Á@ @8 @@84$ò€€@@P@$@(@(@(@&b`@X@ a@@@Põ@ð10L p@$A`@@@&&b`@@@&
&bñÀ€Áððð@ @@P HG",:`(óŒâ+rx4,)BG",:`]
M`ò¢â+k8=+yBO.b+sm+yBO]
M`óŽâ3òjù´í+yBú/²™!"DA{òjÝ`w+9B[&C@ðJáïòjÖmW+/~ü¥)a"DóóÀ…#;VK+Bü¥)aO
M`@`$L½$IBü¥)a]
M`4@G#;V\+qBüóºe"X`òfN|*Xüóºe]
M`d`y+xý2§ja2bòjâk,IBiK0O3,Pð+¢+p#+qBiK0[\\@ð{áwòjpNï,9BiZY`"Y(Hat+ R*+yBk;.92,xa)8j)YBk;.92]
M`Ha#òj\u9)9B[fððU—/ð0x
ð×0ðB…ðX½}ð5Xkðû7C('sð0Ÿ1ðçðYðððîðððð!ð#ð%ð'ð)ð+ð-ð/ð1ð3ð5ð7ð9ð;ð=ð? ðA!ðC"ðE#ðG$ðI%ðK&ðM'ðO(ðQ)ðS*ðU+ðW,ðY-ð[.ð]/ð_0ða1ðc2ðe3ðg4ði5ðk6ðm7ðo8ðq9ðs:ðu;ðw<ðy=ð{>ð}?ð@ðAðƒBð…Cð‡Dð‰Eð‹FðGðHð‘Ið“Jð•Kð—Lð™Mð›NðOðŸPð¡Qð£Rð¥Sð§Tð©Uð«Vð­Wð¯Xð±Yð³Zðµ[ð·\ð¹]ð»^ð½_ð¿`ðÁaðÃbðÅcðÇ =.
END START Y $C (!.TVGUTS !.TVCRFT !.TVFROB)>
<GROUP-GLUE MCC>
<GROUP-DUMP "MARC;TVHACK GBIN" MCC ,PRINT>
 $0xð!g,6h/öèM-Rô¸õÁ€ûõ¸	õŒ g‡.&õƒ€õ€ô¸õÁ€ûõ¸
õŒõ‡øõ€,6õ‡øô° D`òè4_ö0õ`4Sòè4_ð`ð€çøè(Á§ùqb-‡ùaËAôàÐ Aðg,6Hõ¤,6Hõ¤,h+/Zxõ´],6ô,6h/,6h/,6h/ð€*Y,$i+h.ô€ ô° H`ô8õ‡ƒÇÙô° `,$iõ`†Óhôô0î,S*!5ö’ƒ‡1Z
(ö’ƒ‡1Z
( _‡XD4DôÿÿZö´“ô<@+hGö‘‡1XJõå´Óõ`4ûõ¯ÿçõ¯ÿçôƒ€,>hh  Eõ‡ƒÔQõç´Í _ï|XDô¯ÿ÷ _ï|ô¯ÿÿ DXõ`4ß2H_ï}õ`4ß hjö0õ`4µ XZ 
_ï|XF( 
_ï~Z
(XJZ _ï~XDõ`4•!"‡4DhfZ*bh[ _ï{öƒ‡1Zö‘‡1ôˆ2F_ïr+hfõ¯ÿçõ¯ÿç _ïzZôƒ€,>hh  Eõ‡ƒÔQõç´Í _ï|XDõ`4•õ¯ÿçõ¯ÿç"_ïqõƒ€õ€ _ïyZôƒ€õ´Õ  Eõ‡ƒÔQõç´Í _ï|XD _ï|Zô€ô/ÿý B_‡ _ï{7d_ïz B_ï~Z5Fh| hjöõ`4• hiöõ`4•õ¯ÿçõ¯ÿç"_ïqõƒ€,6 _ïqZôƒ€õ´Õ  Eõ‡ƒÔQõç´Í _ïs+he B_ï|*õ`4yô8
õ‡ƒÇÙ pô8,%ô8
õ‡ƒÇÙô¯ÿõ _ï{,$iô8
õ‡ƒÇÙõ‡ƒ¤S+h4$hö9+hô8
õ‡ƒÇÙ pô8,%ô8
õ‡ƒÇÙô¯ÿõ _ï{,$iô8
õ‡ƒÇÙ p	ô8,%ô8
õ‡ƒÇÙôƒ€ X,$iô8
õ‡ƒÇÙ p
ô8,%ô8
õ‡ƒÇÙõ‡ƒ¤S/hk+hõå´×6 _ï{õ`4mõƒ€,6hfõƒ€,6hfõƒ€,6hf _ï| $öƒ‡1Z B_ï~öèM hl B_‡ FX5Fh$öƒ‡1Zõƒ€õ€ôƒ€,>hh  Eõ‡ƒÔQõç´Íõå´Ù+h8ô B_‡5hh4Z
5Jh-7@_ï~õ`‡1Ra_ï~öƒ‡1Zõƒ€õ€ôƒ€,>hh  Eõ‡ƒÔQõç´Í+h#7@_ï~õ`‡1Ra_ï~öƒ‡1Zõƒ€õ€ôƒ€,>hh  Eõ‡ƒÔQõç´Í X F_‡Z F_ï~õ@€ _‡+h _‡ö‘‡1Zô¸õÀ€ûô€ @ô6 _ï{õ`4·õƒ€,6hfõƒ€,6hfõƒ€,6hf _ï} $öƒ‡1Z B_ï~öèM hl B_‡ FX5FhIöƒ‡1Zõƒ€õ€ôƒ€,>hh  Eõ‡ƒÔQõç´Íõå´Ù+h]ô B_‡5hhYZ
5JhR7@_ï~õ`‡1Ra_ï~öƒ‡1Zõƒ€õ€ôƒ€,>hh  Eõ‡ƒÔQõç´Í+hH7@_ï~õ`‡1Ra_ï~öƒ‡1Zõƒ€õ€ôƒ€,>hh  Eõ‡ƒÔQõç´Í X F_‡Z F_ï~õ@€ _‡+hA Xö‘‡1Zô¸õÀ€ûô€ @ôô¸õÀ€û,6õ„ô¸õÀ€û,6õ„ ",= /hmôƒ€+að$4($4 ð(ô/ÿýpô/ÿÿ (P0î ûlP¥ø´êÌ©ôâE‡ùˆ"­ø3*ÅEôkE‡ú“é yúµ¢Ã©ùô[¥ø´ê ù6.¾Aø4ìÌ«ù¨O¥ôjO›ô Ì§ø¯” ›ø4¥­úQb K÷•,ЋõµÐA§û3*ÍAúÑaԟúO%yù3ªE¥ùÐf-¥úuaRAøjA[øÒgDAöOO«úäAôªîëþyr Óþ™v GôHIéü»P#Eôuçü¹"AôH:iÛü¼×"Aô¯)G™ùðÐU™ù4ê ©÷ȼ¥øó'ÃAøÓ$Ó©ô]A3DAd/P|`føR]ÀeþõÉC,n	A/P9ððÁ(BI@tE@øRXÆÍþ“H0BM;tR ðD(BI)ugÿdýðð8ð`ðˆ'BM*zþ؍	E3ZxÿQDU	hdð\õ(,ð”ðˆ¯EM7xR*ðpÇî0zðW GWBF|w<ps(@.ð‰ðP»hðøO.ðxoDðd›0THD!/LOðpøw¾³hh=ðäƒC[g'3þñ8ðdeøì˜ü×p`ðx#ð”+1@5`7ðÀs(M(hðPÝpyp!ðLU1<P>PFðtŸPVðôËCL$pap÷ÈŠñO Ήô Ó§ù1çE‰÷è#Ì«ø¯.ù•b yúj Yú¢Ó«ù•G™ú±P!·öŒ˜±o÷6oö,¶mö¨³kö­1cö¨°oöîZ0eöŒ2m÷
²a÷-Ð2m÷
¶köŽ1qöl˜¸göŒ8Aö,Ú¸sö­9oôX9iö윹qöˆ±k÷
›¶i÷1qöl˜7eön[9Aö,°kö.X°kô
Y0cô›6köÐ1möl¶kö.8Aõ¬Ú8q÷Y2q÷±gö,6mö
Z0Aö-ظa÷,Ú1i÷¶iö-˜1aöMP1göŒ˜·qöl˜ möîµgöÍ1qöMY¶oöí[8Aö-Ú³eöœ²i÷3o÷³iöŒP4eöŒÚ°iôY8qö®Z°iöÍ0Aöî4iön¾}ôE
÷”âԏôjÖcô*֋øu'ÒAôuç҉ô
˜0aö0aö0U÷ϐ
ñ¢žG‰ø°æ Qø5k1Sô*֋øu'ÒA÷”)I›ú–hEAúóéD}÷ϐ
ñ¢žS‹ú‘ÐMƒúRÖÆ¥ø±P'=,6Hõ¤,6Hõ¤,h+/Zxõƒ€õ´qöèM-R,6põ¸Bpõ€,6Bp _‡ô(.$õƒ€,6ô8
õÁûõƒ€õˆõ‡øö©‡1_/D"h9úx õƒ€õ´qöèM-R4&hô8õå´s+h7ø)ƒÿÿ F_‡ _ï}4fQ&õÁ€öƒÿÿõ`‡1ôÿÿ BX5Bh _‡ _ï}4dQ$õÁöÿÿõ`‡1ùðÿÿõ`4aö¨´E,6p	õ¸õ¯ÿûõ¯ÿûðÐ=õ`4aô8õ‡ƒÇÙ pô8,%ô8õ‡ƒÇÙô¯ÿý _‡,$iô8õ‡ƒÇÙ pô8,%ô8õ‡ƒÇÙô¯ÿÿ X,$iô8õ‡ƒÇÙ pîô8,%ô8õ‡ƒÇÙõ‡ƒ¤Sõ¸õ¯ÿûõ¯ÿûõ¯ÿûõ‡ø.h:ö©‡1_/D"h9úx +hõå´uôƒ€'+a$4 08VînûlMƒúRÖÆ¥ø±P#‰ø°æ QôU Ì«ø¨A©ùóP<«úÑaԟúH-ҋúuF“û_ ƒñØ/õƒ€õ´Åõƒ€õ´Å p	ô/ÿûô8 @_ï~ô¸õÀ€ûõ¸õ„ô¸õÀ€ûõƒ€õ„ô¸õÀ€ûõƒ€õ„ô8,HN+hô¸õÀ€û ô„4&hõƒ€,6hcõ‡ø! ô8õÁû Bôˆõ¸#õ€öèM-Rõ¯ÿùõ¯ÿùõ‡ø% _ï}ô(õÉõƒ€,6õ¯ÿûõ¯ÿûõ‡ø'ö©‡1_/Dòè´Çúx ,6põ¸) F_ï{BFcõ¯ÿÿõ¯ÿÿõ‡ø+õ¯ÿÿõ¯ÿÿõ¯ÿõõ¯ÿõõƒ€õ´Åõ‡ø-ô¸/õÁ€û Bôõƒ€,6hdõ€,6õ¯ÿõõ¯ÿõ D_ïxFp,6põ¸1Bpõ€,6Bpõ¯ÿõõ¯ÿõõ¯ÿ÷õ¯ÿ÷Dpõƒ€õ´ÅöèM-R _ï}ö°´}/hbõ`4§öƒ‡1Zö‘‡1Zö‘‡1ôˆ,6õ„ F_‡Bpõ¯ÿÿõ¯ÿÿõ¯ÿñõ¯ÿñDp XõȀõƒ€õ€õ¯ÿñõ¯ÿñõ¯ÿóõ¯ÿóFp Xô83õÁûõÀˆõƒ€õ€õ¯ÿñõ¯ÿñõ¯ÿóõ¯ÿóFp _ï} $öƒ‡1Z=dhQ B_ï}õ`4wô€ô¼ïõ‡ƒÔQô€  B*fhVôòø4Éõƒ€,6õƒ€õ´Åõƒ€,6heõ¯ÿïõ¯ÿï ",/tõ¯ÿõõ¯ÿõõ¯ÿ÷õ¯ÿ÷õ¯ÿïõ¯ÿïFpõå´Ëôƒ€+a$4 $4ðpðð
ñl•¦WûlG«ùÕiʼnôâE‡ùˆ"­ø3*ÅEôkE‡ú“é Eùô*IŸùÐf"A÷“é ƒú“栍ø3)Å}õ(&Á¥ùkaȃù3S©úU'ØAútçA›ø¨&Á¥ùkh­‡ùdÎAù°iK[ú°¦O‡ùh(R‹úufTAúˆ¼¥øó'ÃAú• Ó§ô K÷•,ЋõµÐA§û3*ÍAúÑaԟúO%yúQæO‡ô'Ó§úaL‹ô K÷”£ÌŸøh"U­ö(*>Aù³áY§úaÅAô¯)G™ùðÐMŸøViЃøqPT}ô	^Iú‘iNƒù‹iS«øTAù3¢ c÷ȼ©û4"­¯ôèA‡ø¨+E‡ú“é>Aô¯$Ωø´§A™õ´©Õ…úH ̙ùðÖ̓ú¾Aô¯$Ωø´§A™õ´©Õ…úH#Å©õ³'ÃAöOMŸøVP%yù3ªE¥ùÐf-¥úuaRAø4¢Ó‹úˆ¾Aô¯$Ωø´§A™õ´©Õ…úH É«úÑaԟúH¾Aô¯)G™ùðÐM«úÈ*>AôS`җú(%yúQæO‡ôgE±úˆ*>»DAd/P|`bBO#Bu~@]E3ZxzEUøuâZ]þó¼©øl•)exl0*BF|w<þÄKp@ð£D!/LO
 Høw¾³ð4=@øQüãy	`C,n	A/P xLøì˜ü×þðDðd%ð¤30.;ððh±ð̵CL$þx÷ÈŠñO Ήô Ó§ù1çE‰÷è#Ì«ø¯.ù•b yúj YøõgU§ø±G™ú±P!·öŒÛ¹cöL5oô\5iö
رcö-3eöm6oöŒ˜ [ö-œ·qöŽY´iö²sö›6eölÛ eö4iöÛ7Aõ¬Ù¸eöLÙ6oö5eöŽ0Aö-8aö
›²Aö,Z0qö­X4cô
9i÷-œ¶aö c÷(6eö-[¡»÷ϐ
ñ¢žS‹ú‘ÐMƒúRÖÑø2g Oðh Að/,6Hõ¤,6Hõ¤,6Hõ¤,h+/ZxöèM-RöèM-Rõ¸õ¯ÿÿõƒ€õ¯ÿùõ‡ø	 D_ï~5Dhô8õ`4' _‡4dQ$õÁöÿÿõ`‡1ô‹ÿÿõȀ _ï~ _‡4dQ$õÁöÿÿõ`‡1ô‹ÿÿõ`4/hôƒ€'+a08Vî-ûlMƒúRÖÑø2g Gø‘aÌAõ«A™ú±Q ƒú“栍ù6<«úÑaԟúH-ҋúuF“û_ ƒúvfU›õ(¼©û4"­¯ôiٙú³PV‹øu'Ò}ô	^Iú‘iNƒù‹iS«øTDƒúVҋø1+ e÷È*]ADAd/P|`BF|w<ps(BF|w(prpøì˜ü×pHD!/LOðhøw¾³h`CL$pap÷ÈŠñO Ήô Ó§ù1çE‰÷è#Ì«ø¯.ù•b yúj Yù°iK[ør ɝôæU‹ôm´c÷-X7kô
Û¸iö̜2eöˆ³iöL[·e÷7qöÍ0Cû¯Ÿ ñCE<§øµ# ›ø4¥­£õ°äA“ùȃA3,6Hõ¤,6Hõ¤,h+/Zxõƒ€,6h/õƒ€,6h/ô¸õÀ€ûõƒ€õ„ô¸	õÀ€ûõ¸õ„õ‡ø
õ€,6öèM-RöèM-Rõ¸õ¯ÿ÷õ¯ÿûõ¯ÿûõ‡ø D_‡ö±4#ô8õ`4[õ¸õ¯ÿ÷õ¯ÿûõ¯ÿûõ¯ÿûõ¯ÿûõ‡ø
õ€,6õ‡ø D_ï}õÁ4_ö©‡1ôˆ _‡ _ï{4dQ$õÁöÿÿõ`‡1ô‹ÿÿõɀ _‡ _ï{4dQ$.öÿÿõ`‡1ô‹ÿÿ B_ï~5Bh& _ï} ôˆ h0ö2€ö+h&+h4bQ".öƒÿÿõ`‡1ôÿÿõÉ _ï~4bQ".öƒÿÿõ`‡1ôÿÿ+hõå´aôƒ€'+aPô`ñŽ+…ûlMƒúRÖÑ[ør ɝôâE‡ùˆ"­ø3*ÅEôjO›ô*֋øu'ÒAût¢Ó©ô¤Ø»÷È Ó³ù•f©Aô¯)G™ùðÐLŸúôjŧô K÷”£ÌŸøh(Ó¡ø0â ©÷ȼ©û4"­¯ôèA‡ø¨+E‡ú“é>Aô¯$Ωø´§A™õ´©Õ…úH ҋúqj c÷ȼ©û4"­¯ôiٙú³PV‹øu'Ò}ô	^Iú‘iNƒù‹iS«øTDƒúVҋø1+ e÷È* K÷’gT‹úS Ì[úTêÂ¥ô ԃõ°iEƒøˆ¾»ðDAd/P|`/BF|w(prpðôM(BF|w<psðàAðDYD!/LO
 Pøw¾³ð4HC,n	Aðè
øì˜ü×pPhCL$pap÷ÈŠñO Ήô Ó§ù1çE‰÷è#Ì«ø¯.ù•b yúj Yù°iK[ú+aȃù3G™ú±P!·öÍÙ¹söìØ cöN5m÷,Z±cô
X±gö4AöM[ cöm1oöìœ0AöLZ7i÷Û4qö²iöNZ!»÷ϐ
ñ¢žS‹ú‘ÐMƒúRÖՅù“áËAôàÐ Að',6Hõ¤,6Hõ¤,h+/Zx,6põ¸öèM-Rõ¯ÿÿõ¯ÿÿõƒ€,6hõƒ€õ´! _ï{õè€ _ï|4"Q".öƒÿÿõ`‡1õƒ€õ€ ",/t/hôƒ€+a08VûlMƒúRÖՅù“áËAôq"Ùô
Vƒù•b¢Aúµ¢Ã©ùôF“ûU­ø°êO¥ôéE§úˆ#I±û¯” CûlP1Aö( côP1Aö( côP1Cû·P AîDAd/P|`BO#Bþ¿ BF|w<þÄBF|w(þ¸øì˜ü×pîxD!/LOðøw¾³hCL$pap÷ÈŠñO Ήô Ó§ù1çE‰÷è#Ì«ø¯.ù•b yúj Yù°iK[ú°¦O‡ùh#Ì«ø¨Ûoö,1a÷,4a÷-5eöŒœ´Cû¯Ÿ ñCE<§øµ# ¡úQiՙúˆƒAðß,6Hõ¤,6Hõ¤,6Hõ¤,h+/Zxõƒ€,6hfõƒ€,6hfõƒ€,6hfõƒ€,6hfô€,<'õ€,6õƒ€,6hfô€,<'õ€,6öèM-Rõƒ€õ¯ÿñõ¸	õ¯ÿñDpõƒ€,6hfõƒ€õ¯ÿï X5"hô4Í.@Xõƒ€,6öèM-R:_ï{6DXõ`4	õ¸	õ¯ÿíõ¯ÿóõ¯ÿóõ‡ø_
õñ&hgúx  H_ïy5(h!ø*ÿÿ _ï} F_ïz H_ïy+h% 
_ï|_/Dòè´Ïúxôˆ F_ïy J_ïz7 _ïx+h-õ¯ÿõõ¯ÿõ _ïyö‘‡1Zôƒ€,>hh  Eõ‡ƒÔQõç´Í _ïzö‘ƒ‡1XDõ`4û _ïzöƒ‡1Zö±4gõ¯ÿõõ¯ÿõ"_ïxõƒ€õ€ ",<' _ïz+h,õƒ€,6hfõƒ€,6hfõƒ€,6hfõƒ€,6hfõƒ€,6hf"_ïvõƒ€,6hfõƒ€,6hf B_ï| B_ï~ F_ï}öèMð(4Ñ D_ï{ô H_ïz3H_ïr7j_ïrõ`4¥ hiö0õ`4—Ra_ï| 
_‡`!, BD (<OR <MEMQ <- .FOO 3> ,LOSSTABLE>
			      <MEMQ <- .FOO 6> ,LOSSTABLE>>)
		         (<PRINC "
Non-referenced object #">
		 	  <PRIN1 .FOO>)>)>>
	.V>
    ,NULL> BL!,ñ¢žU§ø«jO©ø3"ƒúvfU›ôO
ñ¢žU§ø¨Mƒø“`ÎE÷ÈŠñO#LŸø1"ƒúLTƒø.éӝø3b øRg"}ôE
÷”âԏôêΫúqb Oðh AðÑô€	52h,6Hõ¤.hb42hûøõƒÿÿ."h,+ð4
ð4/Zxõƒ€õ´Åõƒ€õ´ÅLð€ÑúvfU›õ()Ô¥ð€/ðO€³
		 <PRINC " times.">
		 <CRLF>)>
	  <SET Q <DATA-FIND .DC .FOO>>
	  <SET FOO <CHTYPE <3 .Q> FIX>>>>

<DEFINE LISTU ("OPTIONAL" (DC ,TVASS) (SP ,ASPACE)
	       "AUX" (ALL <* 1024 <ALLOCPAGE .DC>>) HI V)
    #DECL ((DC) ASYLUM (ALL HI) FIX (V) UVECTOR (SP) SPACE)
    <SET HI <CHTYPE <1 <GET-LOC <+ .ALL ,HIGHID> ,DUV1>> FIX>>
    <SET V <AIUVECTOR ,MOBYSPACE .HI 0>>
    <REPEAT ((VEC .V) (N 1) FX)
	#DECL ((VEC) UVECTOR (N FX) FIX)
	<SET FX <CHTYPE <DATA-READW .DC .N> FIX>>
	<COND (<AND <G? .FX 0> <L? .FX .HI>>
	       <PUT .VEC .FX 1>)>
	<AND <==? .N .HI> <RETURN>>
	<SET N <+ .N 1>>>
    <MAPR <>
	<FUNCTION (X "AUX" FOO)
	    #DECL ((X) UVECTOR (FOO) FIX)
	    <COND (<1? <1 .X>>)
		  (<DATA-AREAD .DC <SET FOO <- <LENGTH .V> <LENGTH .X> -1>>
			 <ARESET .SP>>
		   <CON>S	  .NL <- <LENGTH .NL> 1>> .TLIST>
				 <RETURN>)
				(T <PUTREST .OLD (.CT !.NL)> <SET WON1 .OLD>)>)
			 (<==? .TEMP .FCT>
			  <COND (.WON1
				 <PUTREST .OLD <REST .WON1>>
				 <PUTREST .WON1 <REST .LASTM>>
				 <PUTREST .LASTM <REST .NL>>
				 <RETURN>)
				(<AND <NOT <LENGTH? .NL 1>>
				      <==? <2 .NL> .POINT>>
				 <PUTREST .OLD (.CT !<REST .NL>)>
				 <RETURN>)
				(T
				 <PUTREST .OLD (.CT <- .POINT> !<REST .NL>)>
				 <SET WON2 <REST .OLD>>)>)>
		   <SET OLD .NL>
		   <COND (<L=? .TEMP 0> <SET LASTM .NL>)>
		   <COND (<EMPTY? <SET NL <REST .NL>>>
			  <AND <NOT .WON1>
			       <NOT .WON2>
			       <PUTREST .CLIST
					(.CT <- .POINT> !<REST .CLIST>)>>
			  <RETURN>)>>)>
	 <PRINC "Unused item #">
	 <PRINC .CT>
	 <CRLF>)
	(<L? .X 0>)
	(<G? .X 1>
	 <PRINC "Item #">
	 <PRINC .CT>
	 <PRINC " used ">
	 <PRINC .X>
	 <PRINC " times.">
	 <CRLF>)>>
    .UV>
   <SETG ULIST
	 <COND (.ENABLE
		<REPEAT (TEMP (OLD .ULIST) (NLIST ()) (UL .ULIST)
			 (NL <REST .ULIST>))
			#DECL ((NLIST) <LIST [REST <LIST [REST FIX]>]>
			       (UL NL) <LIST [REST FIX]> (TEMP) FIX)
			<COND (<EMPTY? .NL>
			       <SET NLIST (<REST .UL> !.NLIST)>
			       <RETURN .NLIST>)
			      (<L=? <SET TEMP <1 .NL>> 0>
			       <COND (<EMPTY? <REST .NL>>
				      <PUTREST .OLD ()>
				      <SET NLIST (<REST .UL> !.NLIST)>
				      <RETURN .NLIST>)
				     (T
				      <PUTREST .OLD ()>
				      <SET NLIST (<REST .UL> !.NLIST)>
				      <SET UL .NL>)>)>
			<SET OLD .NL>
			<SET NL <REST .NL>>>)
	       (T <REST .ULIST>)>>
   <SETG FLIST
	 <COND (.ENABLE
		<REPEAT (TEMP (OLD .FLIST) (NLIST ()) (UL .FLIST)
			 (NL <REST .FLIST>))
			#DECL ((NLIST) <LIST [REST <LIST [REST FIX]>]>
			       (UL NL) <LIST [REST FIX]> (TEMP) FIX)
			<COND (<EMPTY? .NL>
			       <SET NLIST (<REST .UL> !.NLIST)>
			       <RETURN .NLIST>)
			      (<L=? <SET TEMP <1 .NL>> 0>
			       <COND (<EMPTY? <REST .NL>>
				      <PUTREST .OLD ()>
				      <SET NLIST (<REST .UL> !.NLIST)>
				      <RETURN .NLIST>)
				     (T
				      <PUTREST .OLD ()>
				      <SET NLIST (<REST .UL> !.NLIST)>
				      <SET UL .NL>)>)>
			<SET OLD .NL>
			<SET NL <REST .NL>>>)
	       (T <REST .FLIST>)>>
   <UVECTOR ,ULIST ,FLIST>>


<SETG AUV1 <UVECTOR #WORD *0*>>
<GDECL (AUV1) <UVECTOR <PRIMTYPE WORD>>>

<DEFINE MARK-FREE (UV DC "AUX" FOO)
  #DECL ((UV) <UVECTOR [REST FIX]> (DC) ASYLUM (FOO) FIX)
  <SSNAME <STRTOX "MARKF">>
  <SET FOO <CHTYPE <1 <GET-LOC <+ ,IDCHAIN <* 1024 <ALLOCPAGE .DC>>>
			       ,AUV1>>
		   FIX>>
  <REPEAT (TEMP Q) #DECL ((TEMP) FIX (Q) <UVECTOR [REST <PRIMTYPE WORD>]>)
	  <AND <G=? .FOO 0> <RETURN>>
	  <SET FOO <CHTYPE <ANDB .FOO #WORD *000000777777*> FIX>>
	  <COND (<0? <SET TEMP <NTH .UV .FOO>>>
		 <PUT .UV .FOO -1>)
		(<L? .TEMP 0>
		 <ERROR CIRCULAR-FREE-CHAIN .FOO>)
		(T
		 <PRINC "Free item #">
		 <PRINC .FOO>
		 <PRINC " used ">
		 <PRINC .TEMP>î	 *92BA h0$xõõ€ ö©4Gô4a.@ ô0ô @`öèM-R h1öõ`4Aô¸ô€'õ`4Cô€ ",6õ€:x+hõ—€2!/AINT ,MONTHS
	,6BIT ,SWIðGð0TCH-TABLE ,BIT-TABLE ,SEQ-SYMS ,MAKETYPES ,ORDERS ,OPTBL ,RCOMS
	,MAKERS ,ASKERS ,MREADERS ,READERS ,SPECS ,ONSYMS ,BYSYMS ,TOBRKS ,DBRKS
	,PATCH>
<KILL:PURITY>
<FLUSH-CLEð!>

.MLLIT==1
A=1
7Cð/F ,Mð0Wð!‘DB	M,!>`	BLOCK	2

START:	MOVE	P,[-30,,PDL-1]
	.OPEN	TTYCHN,[SIXBIT /  !TTY/]
	 .LOSE	1000
	.SUSET	[.RXUNAME,,XUNAME]
	LDB	A,[063600,,XUNAME]
	CAME	A,[SIXBIT / GUEST/]
	 CAMN	A,[SIXBIT / LUSER/]
	  JRST	LOSNAM
	CAMN	A,[SIXBIT / CHEAT/]
	 JRST	LOSNAM
	LDB	A,[063000,,A]
	CAMN	A,[SIXBIT /  TRIV/]
	 JRST	LOSNAM
	HLRZ	A,XUNAME
	CAIN	A,777777
	 JRST	LOGIN
	.CALL	DEATH
	 JRST	CKUSER
	.CALL	[SETZ				; GET FILE LENGTH IN A
		 SIXBIT /FILLEN/
		 MOVEI	DSKCHN
		 SETZM	A]
	 JRST	FAKMSG
	CAIN	A,
	 JRST	FAKMSG
	MOVE	B,BUFPTR
	.IOT	DSKCHN,B
	.CLOSE	DSKCHN,
	MOVE	B,[440700,,BUF]
MSGDTH:	PUSHJ	P,OUTMSG
MSGEND:	CAME	XUNAME,[SIXBIT /TAA/]
	 CAMN	XUNAME,[SIXBIT /MARC/]
	  JRST	WIN
	.BREAK	16,140000
FAKMSG:	MOVE	B,[440700,,MSG]
	JRST	MSGDTH

CKUSER:	.CALL	DIROPN				; REAL PERSON?
	 JRST	CKTIME				; NOPE
	.CALL	MSGOPN				; REALLY A REAL PERSON?
	 JRST	LOSNAM
	.ðXB‰ñ{€7gCLOSE	DSKCHN,

WIN:	MOVE	B,[440700,,STMSG]
	PUSHJ	P,OUTMSG
	.CALL	SAVOPN
	 .VALUE	[ASCIZ /: No SAVE file?

/]
	.IOT	SAVCHN,[-1,,A]
	MOVSI	B,SIXBIT /   MUD/
	ILDB	C,VBPTR
	SUBI	C,40
	DPB	C,VSBPTR
	ILDB	C,VBPTR
	SUBI	C,40
	IDPB	C,VSBPTR
	.ACCES	SAVCHN,[0]

	.CALL	MUDOPN
	 .VALUE	[ASCIZ /: No TS MUDDLE ?

/]
	MOVSI 17,STUFF
	BLT 17,17
	JRST 1

LOSNAM:	MOVE	B,[440700,,NAMMSG]
	PUSHJ	P,OUTMSG
	MOVE	B,[440600,,XUNAME]
	MOVE	C,[440700,,SXUNAM]
SIXLOP:	ILDB	A,B
	JUMPE	A,SIXTOO
	ADDI	A,40
	IDPB	A,C
	JRST	SIXLOP
SIXTOO:	MOVE	B,[440700,,SXUNAM]
	PUSHJ	P,OUTMSG
	MOVE	B,[440700,,NAMEND]
	PUSHJ	P,OUTMSG
	.BREAK	16,160000

LOGIN:	MOVE	B,[440700,,LOGMSG]
	PUSHJ	P,OUTMSG
	.BREAK	16,160000

OFFHOR:	MOVE	B,[440700,,OFFMSG]
	PUSHJ	P,OUTMSG
	.BREAK	16,160000

CKTIME:	.RYEAR	A,
	 LDB	A,[320300,,A]			; IS IT A WEEKEND?
	JUMPE	A,CURFCK
	CAIN	A,6
	 JRST	CURFCK
	.RTIME	A,
	LDB	A,[301400,,A]			; IS IT OFFICE HOURS?
	CAIGE	A,'22
	 CAIGE	A,'09
	  JRST	CURFCK
	.RDATE	A,
	.CALL	HOLOPN				; IS IT A HOLIDAY?
	 JRST	FLUSH

CURFCK:	.CALL	CURFEW
	 JRST	WIN
	.CLOSE	DSKCHN,
	MOVE	B,[440700,,CURMSG]
	PUSHJ	P,OUTMSG
	.BREAK	16,160000

FLUSH:	.CALL	BADBOY
	 JRST	NEWBAD
	.CALL	RFDATE
	 JFCL
	.CALL	RQDATE
	 JFCL	
	.CALL	SFDATE
	 JFCL
	.CLOSE	DSKCHN,
	HLRZ	A,TIME				; DID THE TURKEY TRY <1/2 HR AGO?
	HLRZ	B,NOW
	CAME	A,B
	 JRST	OFFHOR
	SUB	NOW,TIME
	CAIGE	NOW,2400.
	 JRST	LOGOUT
	JRST	OFFHOR

NEWBAD:	.CALL	MAKBAD
	 .LOSE	1000
	.CLOSE	DSKCHN,
	JRST	OFFHOR

LOGOUT:	.VALUE	[ASCIZ /:You don't believe me, eh?  That makes me MAD!!!
:LOGOUT
/]
	.BREAK	16,160000

OUTMSG:	PUSH	P,A			; GIVEN BYTE POINTER, PRINT FROB OUT
	PUSH	P,C
	PUSH	P,B
	MOVEI	C,
OUTLOP:	ILDB	A,B			; LIKES BYTE POINTER TO FROB IN B
	CAIE	A,0
	 CAIN	A,3
	  JRST	OUTEND
	AOJA	C,OUTLOP
OUTEND:	POP	P,B			; GET BYTE POINTER IN B, COUNT IS IN C
	.CALL	[SETZ
		 SIXBIT	/SIOT/
		 MOVEI	TTYCHN
		 B
		 SETZ	C]
	 .LOSE	1000
	POP	P,C
	POP	P,A
	POPJ	P,

DEATH:	SETZ
	SIXBIT /OPEN/
	MOVSI	.BII
	MOVEI	DSKCHN
	DSKDEV
	[SIXBIT /TRIVIA/]
	[SIXBIT /DEATH/]
	SETZ	MSGDIR

DIROPN:	SETZ
	SIXBIT /OPEN/
	MOVSI	.BII
	MOVEI	DSKCHN
	DSKDEV
	[SIXBIT /.FILE./]
	[SIXBIT /(DIR)/]
	SETZ	XUNAME

MSGOPN:	SETZ
	SIXBIT /OPEN/
	MOVSI	.BII
	MOVEI	DSKCHN
	DSKDEV
	MSGDIR
	XUNAME
	SETZ	XUNAME

MUDOPN:	SETZ
	SIXBIT /OPEN/
	MOVSI	4
	MOVEI	MUDCHN
	DSKDEV
	[SIXBIT /TS/]
	B
	SETZ [SIXBIT /SYS1/]

SAVOPN:	SETZ
	SIXBIT /OPEN/
	MOVSI	6
	MOVEI	SAVCHN
	DSKDEV
	[SIXBIT /TRV/]
	[SIXBIT /SAVFIL/]
	SETZ [SIXBIT /MADMAN/]

HOLOPN:	SETZ
	SIXBIT /OPEN/
	MOVSI	.BII
	MOVEI	DSKCHN
	DSKDEV
	[SIXBIT /HLIDAY/]
	A
	SETZ [SIXBIT /COMBAT/]

CURFEW:	SETZ
	SIXBIT /OPEN/
	MOVSI	.BII
	MOVEI	DSKCHN
	DSKDEV
	[SIXBIT /TRIVIA/]
	[SIXBIT /CURFEW/]
	SETZ MSGDIR

BADBOY:	SETZ
	SIXBIT /OPEN/
	MOVSI	.BII
	MOVEI	DSKCHN
	DSKDEV
	BADNAM
	XUNAME
	SETZ	BADDIR

RFDATE:	SETZ
	SIXBIT /RFDATE/
	MOVEI	DSKCHN
	SETZM	TIME

RQDATE:	SETZ
	SIXBIT /RQDATE/
	SETZM	NOW

SFDATE:	SETZ
	SIXBIT /SFDATE/
	MOVEI	DSKCHN
	SETZ	NOW

MAKBAD:	SETZ
	SIXBIT /OPEN/
	MOVSI	1
	MOVEI	DSKCHN
	DSKDEV
	BADNAM
	XUNAME
	SETZ	BADDIR

STUFF:	OFFSET -.
	2
	.CALL LOAD
	.VALUE
	.IOT MUDCHN,A
	.CLOSE MUDCHN,
	ADDI	A,1
	JRST @A

LOAD:	SETZ
	SIXBIT /LOAD/
	1000,,-1
	SETZI MUDCHN

	OFFSET 0

MSG:	ASCIZ	/
TRIVIA is down for repairs.  Sigh.
/
OFFMSG:	ASCIZ	/
TRIVIA is not available during office hours (9 AM to 10 PM, Eastern time.)
/
NAMMSG:	ASCIZ	/
Losers with the name /
NAMEND:	ASCIZ	/ cannot play TRIVIA!
/
LOGMSG:	ASCIZ	/
Losers who are not logged in cannot play TRIVIA!
/
CURMSG:	ASCIZ	/
The system is VERY loaded.  Please try again later.
/
STMSG:	ASCIZ	/
Documentation in MADMAN;TVñ{€M pñ¢žS‹ú‘ÐS§ùÐfÅAðh A,6Hõ¤,hõ`€U/Zxô¯ÿÿ Xvhõå´+Kp@pñµ…gûlS§ùÐfÅAôq"Ùô
Vƒù•b¢A÷”)I›ú–hEAúóéD}ô(R“ùµ,Ћôç҉÷Ên Aðð5CL$p(DAd/Py>÷ÈŠñO Ή <ASSIGNED? GLUE> .GLUE <PUT ,útçA›ø¨#Ì«ø¨¡·ö,µaö¬š´iô›2cöŽÝ}÷ÈŠA p j
<TITLE SSNAME>
	<DECLARE ("VALUE" <PRIMTYPE WORD> <PRIMTYPE WORD>)>
	<DPUSH	TP* (AB)>
	<PUSHJ	P* OUT>
	<JRST	FINIS>

<INTERNAL-ENTRY OUT 1>
	<SUBM	M* (P)>
	<MOVE	A* -1(TP)>
	<MOVE	B* (TP)>
	<*SUSET	[<(*400016*) B>]>
	<SUB	TP* [<(2) 2>]>
	<JRST 	MPOPJ>
 j 8ûlCŸùÔÖÉ©ôâE‡ùˆ"­ø3*ÅEôäAùÑf §ú”¤Îô¤ØSô¨R“ùÕ!"»DAd/Pÿ„°;øc¹ì×{JEh^{S8D!/LOð!høw¾³h`øì˜ü×pPE3ZxÿQD0øuâZ]wNx(C$U@zuCL$pap÷ÈŠñO Ήô Ó§ù1çE‰÷è#Ì«ø¯.ù•b yúj YøsçS[ù5G™ú±P!·öìX4cöš iöÙ8göȳiöL[·göÍ1aöìÛ´c÷š köM9iô7_>Añ¢†ŠEù³ëEAù•aL—úh ΉôáÏ¥ø´Ñ ñCE<§øµ# ›ú³£­™ùôé Oðh AZ,6Hõ¤,6Hõ¤,6Hõ¤,6Hõ¤,6Hõ¤	,6Hõ¤,h+/Zxõƒ€,6hSõƒ€,6hSõƒ€,6hSõƒ€,6hSöèM-Rõ¸	õ¯ÿïõƒ€õ´§õ¸õ¯ÿñõ‡ø
õ€,6õ‡øõ€,6Bp D_ï~ D_ï}öèM hTõ¸	õ¯ÿíõƒ€õ´©õ‡ø D_‡õé DXõƒ€,6hSô¯ÿõ _ï{ _ï}ö‘ƒ‡1Zö’‡1ôõé€õ‡ƒµÕõ€,6,6p	õ¸,>hUô¯ÿýðHç#HA-PRINTW .N .NSTART .NEW>
		       <SET NSTART .NEW>
		       <PUT .MARKV .OLD .NEW>)>>>

<DEFINE MUNG-GRADE-CHAIN (N D ASP SSP CINDEX NINDEX MARKV) 
	#DECL ((N D) ASYLUM (ASP SSP) SPACE (CINDEX NINDEX) FIX
	       (MARKV) <UVECTOR [REST FIX]>)
	<REPEAT ((OLD <+ .CINDEX ,ANEXT>) (NEW <+ .NINDEX ,ANEXT>)
		 (NSTART .NEW) CFROB)
		#DECL ((NSTART OLD NEW) FIX (CFROB) VECTOR)
		<COND (<0? <SET OLD <CHTYPE <DATA-READW .D .OLD> FIX>>>
		       <DATA-PRINTW .N .NEW 0>
		       <DATA-PRINTW .N <+ ,ALAST .NINDEX> .NEW>
		       <RETURN>)
		      (T
		       <SET CFROB <DATA-AREAD .D .OLD <ARESET .ASP>>>
		       <PUT .CFROB ,AQUES <NTH .MARKV <AQUES .CFROB>>>
		       <SET NEW <1 <DATA-APRINT .N -1 .ASP .CFROB>>>
		       <DATA-PRINTW .N .NSTART .NEW>
		       <SET NSTART .NEW>
		       <PUT .MARKV .OLD .NEW>)>>>

<DEFINE REVERSE (FOO "AUX" (TTE <REST .FOO>) (RETL ())) 
	#DECL ((FOO TTE RETL VALUE) LIST)
	<COND (<EMPTY? .TTE> .FOO)
	      (T
	       <REPEAT ()
		       <SET RETL <PUTREST .FOO .RETL>>
		       <COND (<EMPTY? <SET TTE <REST <SET FOO .TTE>>>>
			      <RETURN <PUTREST .FOO .RETL>>)>>)>>

#Hñ‹mñ¢žU§ø«jO©ø3"ƒúvfU›ôO
ñ¢žU§ø¨Mƒø“`ÎEô©Ô¥ôO
ñ¢žF™ùðb Eø4™:©ø0]Ó§ùÐfÅAùФÎE÷ÈŠñO#ċøs(£út ËôiЃøqPS§úaÅAù³áY§úaÅAù“éÓ§úaÅSôèA‡ø¨T­ø4é©Aø4ìÌ«ù¯
ñ¢žS‹ú‘ÐM«ùÑÐ'Fô€	52h,6Hõ¤õÄ´w42hûøõƒÿÿõÈ´
,+hhh/Zxõ¸,6h<õƒ€,6h<õƒ€,6h<õƒ€,6h<õ`49/Zx,6h<,6h<õ¸,6h<õƒ€,6h<õƒ€,6h<õƒ€,6h<õ`45/Zx,6h<,6h<,6h<,6h<õ¸,6h<õƒ€,6h<õƒ€,6h<õƒ€,6h< pô/ÿõô8 @_ï{ô€ô/ÿ÷   @_ï|ô¸õÀ€ûõ¸õ„ô¸õÀ€ûõ¸õ„ô¸õÀ€ûõ¸õ„ô¸!õÀ€ûõ¸õ„ô¸#õÀ€ûõ¸õ„ô8%,HN+h*ô¸'õÀ€ûôõ`4[õƒ€õ´yõ‡ø)ô¸'õÁ€û Bôõ¸,6öèM-Rõ¯ÿõõ¯ÿõõ‡ø+õ¯ÿéõ¯ÿéõƒ€õ¯ÿéDpõ¯ÿéõ¯ÿéô8-,HN+h8ô¸/õÀ€ûô õ€,6õƒ€,6h=õƒ€õ´{õ‡ø1ô¸/õÁ€û Bô D_ïwõ¯ÿíõ¯ÿíõƒ€,6h>õ‡ø3&$ô¸5õÁ€û Bôõ¯ÿíõ¯ÿíô¸5õÀ€ûõƒ€õ„õ‡ø7 D_ïzõ¯ÿóõ¯ÿóõ‡ø9 _ïwô	ôƒ€_õñòé´}ö€+hO _ïz5$hO3Fõ`4¡õY4›ôƒ€ $+hQôƒ€ôƒ€ô
õƒ€,6h?,6 _ï{ô(õÉõƒ€,6õƒ€,6h<ô€,= õ€,6õ‡ø;ö©‡1_/Dòè´úx  F_ïxõ¯ÿÿõ¯ÿÿõ¯ÿíõ¯ÿíõƒ€,6h<õ‡ø= D_ïyõ¯ÿíõ¯ÿíõƒ€,6h@õ‡ø?õƒ€,6h<õ¯ÿïõ¯ÿï,6p õ¸A _‡ö¨´åô4.@_‡õƒ€õ€ _‡5"hrô4.@_‡õƒ€õ€öèM-R Xö¨ƒ‡1 _‡ö©‡1  @/hA+hgõå´wõå´ƒ,6p!õ¸CBpõ€,6Bpõ¯ÿíõ¯ÿíõ¯ÿóõ¯ÿóõ¯ÿùõ¯ÿùõ‡øEõ€,6õ¯ÿõõ¯ÿõõ‡øEõ€,6õ¯ÿïõ¯ÿïõ‡øEõ€,6õ¯ÿçõ¯ÿçLpô¸GõÁ€û Bô,6p$õ¸IBpõ€,6Bpõ¯ÿíõ¯ÿíõƒ€õ´{õ¯ÿñõ¯ÿñõƒ€õ´{õ‡øKõ€,6õ‡øMõ¯ÿíõ¯ÿíõƒ€,6h=õ¯ÿñõ¯ÿñõƒ€,6h=õ‡øKõ€,6õ‡øMõƒ€,6h<ô€ BXöèM-Rõ¯ÿëõ¯ÿëõ¯ÿýõ¯ÿýõ¯ÿïõ¯ÿïõ¯ÿùõ¯ÿùõ‡øKõ€,6õ‡øM:X1b+hõå´wõ¯ÿíõ¯ÿíõƒ€,6hBõ¯ÿñõ¯ÿñõƒ€,6hBõ‡øKõ€,6õ‡øM,6p'õ¸OBpõ€,6Bpõ¯ÿíõ¯ÿíõ¯ÿóõ¯ÿóõ¯ÿ÷õ¯ÿ÷õ¯ÿóõ¯ÿóõ¯ÿéõ¯ÿéJp,6p(õ¸QBpõ€,6Bpõ¯ÿíõ¯ÿíõ¯ÿóõ¯ÿóõ¯ÿóõ¯ÿóõ¯ÿóõ¯ÿóõ¯ÿéõ¯ÿéJpõ¯ÿíõ¯ÿíõ¯ÿóõ¯ÿóõ¯ÿõõ¯ÿõõ¯ÿõõ¯ÿõõ¯ÿéõ¯ÿéJp	ô8Sõå´…ôƒ€'+aððB$4ð$4 ðð 0ð@DhJ ûlM«ùÑÐ#‰ø°æ QôU Ì«ø¨A©ùóP"Ÿú$ϝø3 §ú”¤Îô¤ØSôçΧõ²j §ú”ªO±ôé΃ù±PM«ùÑÖ̟útÐM«ùÑÖÁùÓê·ø¨&՝øëh ›ú³£­™ú´âÒ§ô	^T³úV×Aø4ìÌ«ù¨+E‡ú“é>AôS`ěø3Ô­ô¢×Eô	^Rù“á ©úÐiÓAú%yúQæO‡ôiЃøqPT}ô	^T³úV×Aút Ëô¢Ã©ùôŸ K÷”£ÌŸøh Ó¡ø0â ©÷ȼ¥øó'ÃAútèA‡ø¨*>Aô¯)G™ùðÐLŸútéЃøqPT}ôg³út Ëô	^Rù“á ›ùð¬Ó¡ø0â ©÷ȼ“ùÕ"ҝø3Ò§ú°© ƒøÒgDAö/%yù3ªE¥ùÐf-¥úuaRAø3&O‡õ³`ÐAö/NAô¯)G™ùðÐNAú%yù3ªE¥ùÐf-¥úuaRAùô"Î[øjA[øÒfEAö%yù3ªE¥ùÐf-¥úuaRAøjA[ø3&O‡ôŸ K÷”£ÌŸøh(E‹ùkhAø¨*>Aô¯$Ωø´§A™õ´©Õ…úH"I¥ù°h e÷ȼ“ùÕ"ҝø3Ò§ú°© ‰ù4–ɝù51}ô	^Iú‘iNƒù‹iS«øTG‹ú‹fO‡ôŸ K÷’gT‹úS Ì[úTêÂ¥ôdÕ­ø°êO¥ôß K÷’gT‹úS Ì[úTêÂ¥ô ԃõ´¢Ó‹úU¢ e÷ÈÛcô3Aöˆ mô
Ð8A÷(°Aö,P1eôY cöˆµAö-1oô\ c÷(0AöLP2eô™ eöˆ5AöM2oô7P"›ú³£ÌŸôH¼“ùÕ"ҝø3Ò§ú°© ƒúQiÅ©ô_ K÷”£ÌŸøh&O§úu ™ø¨*>AôT¢Ó‹úU‘ K÷’gT‹úS Ì[úTêÂ¥ô ԃõ´¢Á‰úè>Aô¯$Ωø´§A™õ´©Õ…úH"A©ø+hR“ùÕ+ g÷ÈAùÓêÎEô¦ÕøôQ µùô¥ÝADAd/Pÿ„°wBF|w<þĵîppøR]Àeþõ±BI1Z8þØ8§D!/LOð_î`øw¾³h/ðl)øQüãÿ"pOXC,n	Aðè;ðüCðKðHYð¸y E øì˜ü×p	 ppðØUð”sðÔXJ	xQðŒ¥
`Wcð$ÓðdðLð|%ðôA0CL$þx÷ÈŠñO Ήô Ó§ù1çE‰÷è#Ì«ø¯.ù•b yúj YùµgGAøó*ÅAô6Ú3o÷,Y0söŽ1qölÜ°eö.³Aö­Ú¹aö®[¶aô¸s÷,Ú5sôY·iöLÛ¹kö
1e÷0i÷-سAõ¬[±o÷
œ³möl7oö-Ú¶qöì [ö-Ø·könZ°m÷6qöŒÛ4qöh6qöŒÛ²i÷°göŽX1oö, eöL8A÷
\°oöL[¹eôX·cölÛ6qöl˜ iölš5eöŒœ9Aõ¬[3köíÜ5mö-cöÌÛ9gö-\1eô[°iöíÚ8mö-cöíØ8gö¬Z8mô
0qö göÈ6eö-œ köM°eô7_>Añ¢†ŠyúqjGAøsçS[ù5'ðE,6Hõ¤,6Hõ¤,h+/Zx,6põ¸õ¯ÿûõ¯ÿûð×Sõ€,6 "ô¼ïõ‡ƒÔQõ€,6 _ï~ô¼ïõ‡ƒÔQ X ö©´ BõY´ôòø4;õƒ€,6öèM-Rõƒ€,6hõ¯ÿýõ¯ÿý X5"hô4=.@Xõƒ€,6öèM-Rõ¯ÿÿõ¯ÿÿõ¯ÿóõ¯ÿóðÝ7/hõ`4%õå´?õ¯ÿûõ¯ÿûðƒÜ¡/h  +a$4ð P
M8+,rTA-APRINT .N
		  <+ ,NINDEX ,TAILOR>
		  .SSP
		  <DATA-AREAD .D <+ .CINDEX ,TAILOR> <ARESET .SSP T>>>
     <DATA-PRINTW .N
		  <+ .NINDEX ,QNEXT>
		  <NTH .MARKV
		       <CHTYPE <DATA-READW .D <+ .CINDEX ,QNEXT>> FIX>>>
     <DATA-PRINTW .N
		  <+ .NINDEX ,ANNEXT>
		  <NTH .MARKV
		       <CHTYPE <DATA-READW .D <+ .CINDEX ,ANNEXT>> FIX>>>
     <MUNG-MAIL-CHAIN .N
		 .D
		 .ASP
		 .SSP
		 .CINDEX
		 .NINDEX
		 .MARKV>
     <MUNG-GRADE-CHAIN .N
		 .D
		 .ASP
		 .SSP
		 .CINDEX
		 .NINDEX
		 .MARKV>
     <SET QASKED
	  <DATA-AREAD .D <+ .CINDEX ,QASKED> <ARESET .SSP>>>
     <MAPF <>
	   <FUNCTION (X) 
		   #DECL ((X) <LIST [REST FIX]>)
		   <COND (<EMPTY? .X>)
			 (T
			  <REPEAT ()
				  <PUT .X 1 <NTH .MARKV <1 .X>>>
				  <COND (<EMPTY? <SET X <REST .X 2>>>
					 <RETURN>)>>)>>
	   .QASKED>
     <DATA-APRINT .N <+ .NINDEX ,QASKED> .SSP .QASKED>
     <COND (<EMPTY? <SET LOSSTABLE <REST .LOSSTABLE 4>>>
	    <RETURN>)>>>

<DEFINE MUNG-MAIL-CHAIN (N D ASP SSP CINDEX NINDEX  MARKV) 
	#DECL ((N D) ASYLUM (ASP SSP) SPACE (CINDEX NINDEX) FIX
	       (MARKV) <UVECTOR [REST FIX]>)
	<REPEAT ((OLD <+ .CINDEX ,MNEXT>) (NEW <+ .NINDEX ,MNEXT>)
		 (NSTART .NEW) CFROB)
		#DECL ((NSTART OLD NEW) FIX (CFROB) VECTOR)
		<COND (<0? <SET OLD <CHTYPE <DATA-READW .D .OLD> FIX>>>
		       <DATA-PRINTW .N .NEW 0>
		       <DATA-PRINTW .N <+ ,MLAST .NINDEX> .NEW>
		       <RETURN>)
		      (T
		       <SET CFROB <DATA-AREAD .D .OLD <ARESET .ASP>>>
		       <SET NEW <1 <DATA-APRINT .N -1 .ASP .CFROB>>>
		       <DATr1
$<COND (<GASSIGNED? $TSIMPLE>)
      (T
       <SETG ATYPE 2>
       <SETG AQUES 1>
       <SETG QAUTH 4>
       <SETG QQNUM 1>
       <SETG ANEXT 1>
       <SETG MNEXT 7>
       <SETG HIQNUM 5>
       <MANIFEST ATYPE AQUES QAUTH QQNUM ANEXT MNEXT HIQNUM>
       <NEWTYPE SPACE VECTOR>
       <NEWTYPE ASYLUM VECTOR>)>

<FLOAD "AR2:TAA;SSNAME NBIN">
<SETG QNUMS <REST <IUVECTOR 100 0> 100>>
<GDECL (QNUMS) <UVECTOR [REST FIX]>>
<DEFINE WINNING-ANSWER? (ANS PLAYER PROGRESS "AUX" TQUES (TVA ,TVASS) (TVS ,TVSPACE)
			 (QNUM <AQUES .ANS>) (QNUMS ,QNUMS))
  #DECL ((PLAYER) TIME (PROGRESS QNUM) FIX (TQUES) <VECTOR FIX FIX FIX TIME>
	 (ANS) <VECTOR FIX FIX TIME> (TVA) ASYLUM (TVS) SPACE
	 (QNUMS) <UVECTOR [REST FIX]>)
  <COND (<1? <ATYPE .ANS>>
	 <L=? <SET QNUM <QQNUM <DATA-AREAD .TVA .QNUM <ARESET .TVS>>>>
	      .PROGRESS>)
	(<MEMQ .QNUM .QNUMS>) 
	(<SET TQUES <DATA-AREAD .TVA <AQUES .ANS> <ARESET .TVS>>>
	 <COND (<==? <QAUTH .TQUES> .PLAYER>
		<PUT <SETG QNUMS <BACK .QNUMS>> 1 .QNUM>
		T)>)>>

<DEFINE ANS-CHAIN-CHECK (PLAYER IDX PROGRESS "AUX" (START <+ .IDX ,ANEXT>)
			 (TVA ,TVASS)(TVS ,QSPACE))
  #DECL ((PLAYER) TIME (IDX PROGRESS START) FIX (TVA) ASYLUM (TVS) SPACE)
  <SETG QNUMS <REST ,QNUMS <LENGTH ,QNUMS>>>
  <REPEAT (ANS NEXT) #DECL ((ANS) <OR FALSE VECTOR>)
    <COND (<0? <SET START <CHTYPE <DATA-READW .TVA .START> FIX>>>
	   <RETURN>)
	  (<SET ANS <DATA-AREAD .TVA .START <ARESET .TVS>>>
	   <COND (<WINNING-ANSWER? .ANS .PLAYER .PROGRESS>)
		 (T
		  <PRIN1 .START>
		  <PRINC "	">
		  <&1 .ANS>
		  <CRLF>)>)
	  (<PRINC "CAN'T READ ">
	   <PRIN1 .START>
	   <PRINC "  ">
	   <PRINC <NTH ,DATA-ERRORS <1 .ANS>>>
	   <CRLF>)>>>

<DEFINE SCHECK ("OPTIONAL" (CHECK? T) "AUX" (OUTCHAN <OPEN "PRINT" "TAA;CHECK OUTPUT">))
	#DECL ((CHECK?) <OR ATOM FALSE> (OUTCHAN) <SPECIAL CHANNEL>)
	<DO-CHECK .CHECK?>
	<CLOSE .OUTCHAN>
	ZORK>

<DEFINE DO-CHECK ("OPTIONAL" (CHECK? T) "AUX" (TVA ,TVASS))
  #DECL ((CHECK?) <OR ATOM FALSE> (TVA) ASYLUM)
  <REPEAT ((L ,LOSSTABLE) PROGRESS PLAYER IDX)
	  #DECL ((L) <LIST [REST TIME STRING FIX FIX]>
		 (PROGRESS) FIX (PLAYER) TIME (IDX) FIX)
    <SSNAME <SET PLAYER <1 .L>>>
    <SET IDX <3 .L>>
    <SET PROGRESS <GETLASTQ .IDX>>
    <6PRINC .PLAYER>
    <PRINC "	">
    <PRIN1 .PROGRESS>
    <PRINC "	">
    <PDSKDATE <DATA-READW .TVA <+ .IDX ,LASTIN>>>
    <CRLF>
    <COND (.CHECK?
	   <SCORE-CHECK .PLAYER .IDX>
	   <QASKED-CHECK .PLAYER .IDX>
	   <ANS-CHAIN-CHECK .PLAYER .IDX .PROGRESS>
	   <MAIL-CHAIN-CHECK .PLAYER .IDX>)>
    <COND (<EMPTY? <SET L <REST .L 4>>><RETURN>)>>>

<DEFINE SCORE-CHECK (PLAYER IDX "AUX" SCORE)
  #DECL ((PLAYER) TIME (IDX) FIX (SCORE) ANY)
  <COND (<SET SCORE <DATA-AREAD ,TVASS <+ .IDX ,SCORE> <ARESET ,SSPACE>>>
	 <COND (<AND <TYPE? .SCORE UVECTOR>
		     <==? <UTYPE .SCORE> UVECTOR>
		     <==? <LENGTH .SCORE> 15>>)
	       (<PRINC "SCORE">
		<PRINC "	">
		<PRINC .SCORE>)>)
	(<PRINC "SCORE">
	 <PRINC "	">
	 <PRINC .SCORE>)>>

<DEFINE QASKED-CHECK (PLAYER IDX "AUX" QASKED)
  #DECL ((PLAYER) TIME (IDX) FIX (QASKED) ANY)
  <COND (<SET QASKED <DATA-AREAD ,TVASS <+ .IDX ,QASKED> <ARESET ,SSPACE>>>
	 <COND (<AND <TYPE? .QASKED VECTOR>
		     <==? <LENGTH .QASKED> 15>
		     <MAPF ,AND?
			   <FUNCTION (X)
$ðUQú“ì §ús Í‹ô¦Á¥ùq‘ K÷”£ÌŸøh Õ­ö(*>Aô¯$Ωø´§A™õ´©Õ…úH#Å©õ³'ÃAöOTAøriC«ùi-úQb­‡ùdÎAùõjC‘ø3"þYr Óþ™v GôH ëþyr EôtÓý¹y®Eô	^T³úV×Aø4ìÌ«ù¨+E‡ú“é>Aô¯$Ωø´§A™õ´©Õ…úH"A©ø+cIøˆ>»DAd/Pÿ„°qBI@þ‘LaøRXÆÍX#p
			     <TYPE? .X LIST>>
			   .QASKED>>)
	       (<PRINC "QASKED">
		<PRINC "	">
		<PRINC .QASKED>)>)
	(<PRINC "QASKED">
	 <PRINC "	">
	 <PRINC .QASKED>)>>

<GDECL (TVASS) ASYLUM (TVSPACE1) SPACE>
<DEFINE MAIL-CHAIN-CHECK (PLAYER IDX "AUX" (PROGRESS #WORD *0*) (START <+ .IDX ,MNEXT>)
			  (TVA ,TVASS) (TVS ,QSPACE))
  #DECL ((PLAYER) TIME (IDX) FIX (PROGRESS) <OR WORD <FALSE WORD>>
	 (START) FIX (TVA) ASYLUM (TVS) SPACE)
  <REPEAT (MAIL NEXT) #DECL ((MAIL) <OR VECTOR FALSE>)
    <COND (<0? <SET START <CHTYPE <DATA-READW .TVA .START> FIX>>>
	   <RETURN>)
	  (<SET MAIL <DATA-AREAD .TVA .START <ARESET .TVS>>>
	   <COND (<SET PROGRESS <WINNING-MAIL? .MAIL .PROGRESS>>)
		 (T
		  <PRIN1 .START>
		  <PRINC "	">
		  <&1 .MAIL>
		  <CRLF>
		  <SET PROGRESS <1 .PROGRESS>>)>)
	  (<PRINC "CAN'T READ ">
	   <PRIN1 .START>
	   <PRINC "  ">
	   <PRINC <NTH ,DATA-ERRORS <1 .ANS>>>
	   <CRLF>)>>>

<DEFINE WINNING-MAIL? (MAIL PROGRESS "AUX" (TP <4 .MAIL>))
  #DECL ((MAIL) <VECTOR [4 ANY]> (PROGRESS) WORD (TP) ANY)
  <COND (<AND <TYPE? <3 .MAIL> TIME>
	      <TYPE? <4 .MAIL> WORD>
	      <TYPE? <1 .MAIL> STRING>
	      <G? <CHTYPE .TP FIX> <CHTYPE .PROGRESS FIX>>>
	 .PROGRESS)
	(T <CHTYPE (.TP) FALSE>)>>#p ñ¢žCŸùÑ(yøðiӓøó¢Äô	*S“ù´&E}õ(TA÷”âԏôjY¡ø¨>A÷”âԏôhՋúh¾A÷”âԏô`Õ©ù>A÷”âԏôhΫù¨¾A÷”âԏôgE±úˆ¾A÷”âԏôgE±úˆ¾A÷”âԏô$ѝú³P5}ô&Áù1¢Ó©ôjY¡ø¨ Ñ«ø´ÐQƒúµ$ £ú3ªÍAø3¢Ø©ôgE±úˆ$I£ùÕf¾A÷“¢×©û4" §úaÅAúÑaԟúO<øµêY¡ø¨ Ó³ù•f ­ø°êO¥÷Ê_ ñCE<ù“àÄAôPi2uú`»§ús Í‹ô¡IôO
ñ¢žS‹ú‘ÐQú³i yúQiÔA÷’j֋øu'ÒAö, a÷È°a÷ϐ
ñ¢žG‰ø°æ Qú3ªÍ§õ(U­ø°êO¥ôéE§úˆ#I±û¯Ÿ ñCE<§øµ# ¯ù3§Iøë`Χúñi?AôàÐ Að[,6Hõ¤,6Hõ¤,6Hõ¤,h+/Zxô¸õÀ€û,6õ„ô¸
õÀ€û,6õ„ _ï|õƒ€õ„ô8õÁûõƒ€õˆöèM-R _ïzô=Hhõ¯ÿùõ¯ÿùõ¯ÿûõ¯ÿûõ¯ÿ÷õ¯ÿ÷Bpõ€,6Fpô	€õ‡ƒµÝô¯ÿý D_‡3d_ï|+h)ôƒ€ $+h*ô¯ÿÿ X _‡5$h3H+h*dh+hôƒ€+h*õ¯ÿùõ¯ÿùõƒ€õŒõ¯ÿ÷õ¯ÿ÷Bpõ€,6Fpôˆ2F_ï{õ`4-ô¯ÿÿ Xô	€,8ô¸õÁ€û Bôö©‡1 _‡ @ pô8/h++ap1Q9ûlW“ùӤΏõ°gS¯ø´Ÿ Gø‘aÌAõ«A™ú±Q yùôA©ùóPFƒù”â yúµ¢Ã©ùô[¥ø´ê ù6.¾}ô+E‡ú“é ù6F“û*I›ø¯T“ù±PF“û
PA¥ø´âÔAøjA[ø4¢Á‰ô	^Rù“á ©úÐiÓAú%yúQæO‡ô+S¡ø0â ©÷ȼ¥øó'ÃAú3ªÍ§ô ©û¨ AðDAd/P|`+BF|w<ps(øRJ®ÝþàðKBI-^(þ×t)D!/LO
 îøw¾³ð4øì˜ü×þ8ðä=C,n	AðèxhCL$pap÷ÈŠñO Ήô Ó§ù1çE‰÷è#Ì«ø¯.ù•b yúj YúògN“ùÑÖÁúuâÒôæU‹ôm´g÷,[8aôÙ2cöM¸k÷1iöíÚ9sö
P2cöí³aö¬™0A÷³m÷²Aöî4iön¾}ôE
÷”âԏôgS[ør ɝõ°äE‡ùhƒAG,6Hõ¤,6Hõ¤,6Hõ¤,h+/Zx _‡õȀõƒ€õ€ô¸õÀ€û,6õ„ô¸õÀ€û,6õ„öèM-Rô¸õÀ€ûô8õÁûûáˆôXôQ&.öƒÿÿõ`‡1ô¸õÀ€ûô€ @ô„,6hC,6hCöèM-Rõ¯ÿûõ¯ÿûõ¯ÿ÷õ¯ÿ÷Dp D_ï}ö±45ô8õ崇õ`4ƒõ¯ÿûõ¯ÿûõƒ€,6õ¯ÿùõ¯ÿùBpõ€,6Fpô¯ÿÿ DX hDö0õ`4_õ€,6,6õ¯ÿñõƒ€õ¯ÿóFp hDöõ`4)ô8õ‡ƒÇÙô¯ÿù _ï}õ‡ƒ¤Íô8õ‡ƒÇÙ pîô8,%õ¯ÿÿõ¯ÿÿBpô8õ‡ƒÇÙõ‡ƒ¤Sõ`4)ô8õ‡ƒÇÙ pô8,%ô8õ‡ƒÇÙô¯ÿù _ï}õ‡ƒ¤Íô8õ‡ƒÇÙ pô8,%ô¸!õÀ€ûô  Xð¿Zö‘‡1ôˆõƒ€õ€ F_‡Bpõ¯ÿýõ¯ÿý D_ï}Bpô8õ‡ƒÇÙ pô8!,%ô8õ‡ƒÇÙô¯ÿû _ï~õ‡ƒ¤Íô8õ‡ƒÇÙ pô8!,%õ¯ÿ÷õ¯ÿ÷ _‡."õƒ€õ€õ‡ø#õ€,6Bpô8õ‡ƒÇÙõ‡ƒ¤S6 _ï{õ`4sõ¯ÿýõ¯ÿýõ¯ÿýõ¯ÿýDpõ¯ÿýõ¯ÿýõ¯ÿýõ¯ÿýDpõ¯ÿýõ¯ÿýõ¯ÿýõ¯ÿýõ¯ÿ÷õ¯ÿ÷Fp	õ¯ÿýõ¯ÿýõ¯ÿýõ¯ÿýDp
 _ï} $öƒ‡1Z÷¹4u B_ï}ö°´}ô8õ崅õ`4*õ`4'/hCôƒ€'+a(@ ðð
ñYP´åûlDŸõ°äE‡ùhċøs(EúÐfU‹ôH ԟù¨O¡ú’g΃ùˆ<ŸúH ԟù¨#A™úq_)AútçA›ø¨#Å©ùiÔ£ô
¨R“ùÐÐP‰úrâA©ø¨)ßúQVÑø°å £ø4åʼnõ°äE‡ùh Χõ°äA“ùËaȋørÐMƒù3Ñø2g-‡ùaËAúˆ¼¥øó'ÃAú• Ó§ô K÷•,ЋõµÐA§û3*ÍAúÑaԟúO%yúQæO‡ô'Ó§úaL‹ô Ÿúµ!ȃùÈ	Eô	^Iú‘iNƒù‹iS«øTDƒúVҋø1+ e÷×P ADAd/P|`ABI@þ‘L[BI1Faþ“4IBM;tR "pBI)ugÿdAðKPBF|w<ps0;øì˜ü×þð|!ðàSD!/LO
 øw¾³ð4@C,n	A/P0CL$þx÷ÈŠñO Ήô Ó§ù1çE‰÷è#Ì«ø¯.ù•b yúj Yø“ÖÑø°å ù•b Cûm·sö,˜7a÷(±göí7e÷.¹Aõ¬[±cöMÚ²cöN1göŽZ´cöí1g÷Xµgöî[4Aö,µqöŒX2iô¹qöl›·möˆ1iöí3möŽ cö¨6eö-[¡»÷ϐ
ñ¢žS‹ú‘ÐS‡ùô¢­‡ùaËAôàÐ A",6Hõ¤,6Hõ¤,h+/Zxõ´=õ´=öèM-Rô¸õÁ€ûõ¸	õŒ _ï~õɀõƒ€õ€ô¸õÁ€ûõ¸
õŒõ‡øõ€,6õ‡øô¯ÿÿ DX hö0+h hö+hõ‡ƒÕïöQ8+h[Xöƒÿñ+h p
ô8õ`4;ô8õ‡ƒÇÙô¯ÿÿ X,$iõ`4;ô€ ô¯ÿÿ HXô8õ‡ƒÇÙô¯ÿÿ X,$iõå´?+aô0ñ³keûlS‡ùô¢­‡ùaËAôq"Ùô
Vƒù•b¢Aø3¬ ©ù3b ù6 K÷”£ÌŸøh*VƒútÐT}ô	^T³úV×Aø4ìÌ«ù¨+E‡ú“é>Aô¯)G™ùðÐS§úaÅAú%yú–hE[úè)ЃøqPV‹øu'Ò}ô	^Iú‘iNƒù‹iS«øTA¥ø´âÔAö/%yù3ªE¥ùÐf-¥úuaRAøjA[ø4¢Á‰ôß «úÑaԟúH* Ÿúµ!ȃù×P ADAd/Pÿ„°=øRXÆÍþ“H1XBI)ugx}H@øT1šßz^xøì˜ü×p	C,n	Aðè
(D!/LOðøw¾³hCL$pap÷ÈŠñO Ήô Ó§ù1çE‰÷è#Ì«ø¯.ù•b yúj Yúpçҋõ°äE‡ùh#Ì«ø¨Ûm÷
²möŒ1göí³gö
Ú¶Aõ¬Y7köl3eö-cöì[3a÷,\¶qô
Y4e÷-Ý}÷ÈŠñO)Å©| ðª€ö‘ƒ‡1ôŒõ‡ƒµÝô€ ô¯ÿÿ HXô8õ‡ƒÇÙô¯ÿÿ X,$iô8õ‡ƒÇÙõ‡ƒ¤Sõ`4)õ崉ôƒ€'+aô`ñFé¦ûlAúkaȃù3–Ñø°å Gø‘aÌAõ«A™ú±Q ƒú“æ ©ù3b ù6F“û
PDƒúVҋø1+ ƒúQiÅ©ô ԃõ°iEƒøˆ+ɝùÒgG[ø3©×‹úOÐ&cô	^Rù“á ©úÐiÓAú%yúQæO‡ôiЃøqPT}ô	^Rù“á £ùÕfÓAúTAùõjC‘ø3"ôHCƒùÉê ¥ø°b Eô Eô	^Rù“á ‰ø5 ­‹úT§Ò§ô]ADAd/P|`CøRXÆÍþ“HBI-^(v]h;BI@tE/BM;tR , 7BI1Faþ“4SHBI)ugx}H(ðT]3X>BF|w<ps D!/LOðXøw¾³hPC,n	AðèðLXøì˜ü×p(ðI(CL$pap÷ÈŠñO Ήô Ó§ù1çE‰÷è#Ì«ø¯.ù•b yúj Yø3©­‡ùdÎ[ør"×ôæU‹ôm´c÷-X7kô
Y´oöìÜ8AölÚµköN\0Aöm8gö
Ù eö²söM0Aõ¬˜³köm´mö
P-cönZ¸möŒÚ²aôY9m÷
Ü7söÎ7qöÍ0Cû¯Ÿ ñCE<§øµ# §ør"×ô	Á Aô€	52h,6Hõ¤õÄ´/42hûøõƒÿÿ."h,+ð4
ð4/Zx+h/Zx,6h,6h pô/ÿÿô8	 @Xõ´1õ¸,6põ¸
,6põ¸ð×Sõ€,6,6põ¸õ‡ƒÅ£öèM-Rõ¯ÿùõ¯ÿùBpõ¯ÿýõ¯ÿýðƒÜ¡ô8/hõ‡ƒÆ'ôƒ€'+aðŸÿÿ@ðð
ñ³CÝûlS‡ùaËAôq"Ùô
Vƒù•b¢Aø5'ÍAôSèT“ùó ÌEô'ÒAø5'ÍAøÐfS‹÷ÊPDŸõ°äE‡ùh* Ÿúµ!ȃùÈP¥ù3ª"AôU Áwør"×ôêÔ¡úµ Qør Νø³ µùô¥ÝADAd/Pÿ„°/øì˜ü×pøµ‡åÿœ-øc¹ì×{JD!/LO
 øw¾³ð4#ETxZC$U@ÿ]LCL$þx÷ÈŠñO Ήô Ó§ù1çE‰÷è#Ì«ø¯.ù•b yúj YúpäE‡ùh#Ì«ø¨Ûiömܱeö
Ø9Aõ¬Y¸eö°köÌ2cöÌX±kö,Û cö¨6eö-[¡»÷ϐ
ñ¢žS‹ú‘ÐDŸõ°äE‡ùhƒAFô€	52h,6Hõ¤.hA42hûøõƒÿÿ."h,+ð4
ð4/Zx+h/Zxõ´ƒõ´ƒ pô/ÿÿô8 @Xô¸õÀ€ûõ¸õ„öèM-Rõƒ€õ´ƒõƒ€õ´ƒ,6õ´ƒõƒ€õ´ƒô¸õÀ€ûôöèM hBö‘‡1ôˆ,6õ€ B_ï~ D_ï|Bp _ï}öƒ‡1Zö‘‡1ðª€û+h/Zxõ´Åõ´Åð€×ðùõ`4M[0Fïqõ`4Mõ€,6,>h/ð!g!/öðçð€õå´aòè4_ö+h.ô8õ‡ƒÇÙô° `BA`ð0WN" "PURITY">
<SNAME "MARðB…$%B=2
YMD=3
M=4
D=5
RY=6
DOW=7
RET=8
LOC 100
START:	.CALL	FLUSH
	 JFCL
	.RDATE	YMD,
	Lð	A%L[141400,,YMD]
	LDB	D,[001400,,YMD]
	.RYEAR	RY,
	LDB	DOW,[320300,,RY]
	CAIE	M,'01
	 JRST	FOURTH
	CAIN	D,'01
	 JRST	WIN
	CAIE	DOW,1
	 JRST	KING
	CAIN	D,'02
	 JRST	WIN
KING:	CAIN	D,'15
	 JRST	WIN
	 .BREAK	16,160000
FOURTH:	CAIE	M,'07
	 JRST	VETRAN
	CAIN	D,'04
	 JRST	WIN
	CAIE	DOW,5
	 JRST	MON5TH
	CAIN	D,'03
	 JRST	WIN
	 .BREAK	16,160000
MON5TH:	CAIE	DOW,1
	 .BREAK	16,160000
	CAIN	D,'05
	 JRST	WIN
	 .BREAK	16,160000
VETRAN:	CAIE	M,'11
	 JRST	XMAS
	CAIN	D,'11
	 JRST	WIN
	 JRST	THANKS
XMAS:	CAIE	M,'12
	 JRST	ODD
	CAIN	D,'25
	 JRST	WIN
	CAIE	DOW,5
	 .BREAK	16,160000
	CAIN	D,'24
	 JRST	WIN
	CAIN	D,'31
	 JRST	WIN
	 .BREAK	16,160000
ODD:	CAIN	M,'02
	 JRST	MON3
	CAIN	M,'04
	 JRST	MON3
	CAIE	M,'05
	 JRST	LABOR
	CAIE	DOW,1
	 .BREAK	16,160000
	CAIGE	D,'25
	 .BREAK	16,160000
	CAILE	D,'31
	 .BREAK	16,160000
	 JRST	WIN
LABOR:	CAIE	M,'09
	 JRST	COLUMB
	CAIE	DOW,1
	 .BREAK	16,160000
	CAIGE	D,'01
	 .BREAK	16,160000
	CAILE	D,'07
	 .BREAK	16,160000
	 JRST	WIN
COLUMB:	CAIE	M,'10
	 JRST	THANKS
	CAIE	DOW,1
	 .BREAK	16,160000
	CAIGE	D,'08
	 .BREAK	16,160000
	CAILE	D,'14
	 .BREAK	16,160000
	 JRST	WIN
THANKS:	CAIE	M,'11
	 .BREAK	16,160000
	CAIE	DOW,4
	 .BREAK	16,160000
	CAIGE	D,'22
	 .BREAK	16,160000
	CAILE	D,'28
	 .BREAK	16,160000
WIN:	CAIE	DOW,6
	 CAIN	DOW,0
	 .BREAK	16,160000
	.CALL	MAKFIL
	 .LOSE	1000
	.CLOSE	1,
	.BREAK	16,160000	

MON3:	CAIE	DOW,1
	 .BREAK	16,160000
	CAIGE	D,'15
	 .BREAK	16,160000
	CAILE	D,'21
	 .BREAK	16,160000
	 JRST	WIN

FLUSH:	SETZ
	SIXBIT /DELETE/
	DNAME
	FNAME1
	[SIXBIT />/]
	SNAME
	SETZ

MAKFIL:	SETZ
	SIXBIT	/OPEN/
	MOVSI	1
	MOVEI	1
	DNAME
	FNAME1
	YMD
	SNAME
	SETZ

DNAME:	SIXBIT	/DSK/
FNAME1:	SIXBIT	/HLIDAY/
SNAME:	SIXBIT	/COMBAT/
END START%L%,úqjGAøPaB™ø«iԃúU6o÷/<§øµ# ƒùÑlTAö/<§øµ# §øséEAöo<§øµ# £ùÑlTAö<§øµ# ©ø³"Ã[úu Ò©ôÚ3}ô&Áù1¢Ó©ô$ПøÑ©Å©ô"ŗõ´êA¥úˆ!A…øS"­§úiTAø3¢Ø©ôáÏ¥ø¨(΋ûT‹ù‘a­§úiT}õ/
ñ¢žS‹ú‘ÐCŸùÕ¢Ò©õ³'Ó§ô	Á Ap,hõ`€U/Zxõƒp,6hgô¸õÀœuõ¸õ„õƒpõ´Ïô¸!õÀœuõ¸#õ„Bpõ€,6Fpõ€,6Bpõ€,6öèMõ kô¸õÀœuõ¸õ„õƒp,6hh _ï~õ`4#û‡ÿÿüƒÿÿ*Bhûx&"õƒpõ€ B_ï|Fpõƒp,6hgõ¯ÿýõ¯ÿýõƒp,6hg,6p,6hgô¸%õÀœuõƒpõ„ô¸'õÀœu,6õ„õƒpõ´Ñ "õ‡ƒtõ€,6ô¸'õÀœu,6õ„õƒp,6hi "õ‡ƒtõ€,6õƒp,6hgöèMõ k _ïzô	öƒqZ÷¹4Qöƒqô _ïzZô _ï{ô„õ¯ÿûõ¯ÿûõ¯ÿ÷õ¯ÿ÷ D_ïz H_ï~Dp _ï}õÀ´Óö¨ƒqûá/B hjö+q _ï| @ _ï}ô8õÁuõ¸õˆ _‡.$õƒp,6 B_ïwDp _ïyõÀ´Õö¨ƒqûá€õð€ hkö+q Dõ¯ÿûõ¯ÿûõ¯ÿ÷õ¯ÿ÷Dp	õ¯ÿýõ¯ÿýõ¯ÿ÷õ¯ÿ÷Dp _ï}õ¯ÿÿõ¯ÿÿ B_ïxBp
 _ïyõÁ´Óö©ƒqòê4×ûâ€õñ€ hl0@ +q Dõ¯ÿÿõ¯ÿÿ _ï|õÀ´Ùõƒpõ€Dpõ¯ÿýõ¯ÿýõ¯ÿ÷õ¯ÿ÷Dp	 _ïz $öƒqZ÷¹4§ B_ïz5Bhaô8õÁuõ¸õˆõƒpõ´Ïô8!õÁuõ¸#õˆõ¯ÿéõ¯ÿéBpô¸)õÁœu Bô,6õŒHp/hm+he _ï~.$:_ï{ _‡.( D_ï~ H_‡õ`4M@pîõå´Ûôƒp'+Kpðððð§ð$4$4ô$4( 's/FPAGE>>>)
      (T
       <SETG HIPOFFSET 23>
       <SETG PEEK-START 7>
       <SETG BABBLE-START 679>
       <SETG ANEXT 1>
       <SETG SCORE 3>
       <SETG QNEXT 0>
       <SETG TELEC-START 343>
       <MANIFEST HIPOFFSET PEEK-START BABBLE-START ANEXT SCORE QNEXT
		 TELEC-START>)>


<DEFINE CONVERT-LOSS ("AUX" HIDX
			    (NUTS
			     <REVERSE
			      <DATA-AREAD ,TVASS ,LUSERS <ARESET ,LOSSSPACE>>>))
	#DECL ((HIDX) FIX (NUTS) <LIST [REST FIX FIX STRING TIME]>)
	<DATA-PRINTW ,TVASS
		     ,HIPOFFSET
		     <SET HIDX </ <LENGTH .NUTS> 4>>>
	<REPEAT ((NNUTS .NUTS) (HIDX 0) PLAYER (TUV ,TUV)
		 (LOC <+ ,PG ,PEEK-START>) (LOC1 <+ ,PG ,BABBLE-START>) LUBLK)
		#DECL ((NNUTS) <LIST [REST FIX FIX STRING TIME]>
		       (HIDX LOC LOC1 LUBLK)  FIX
		       (TUV) <UVECTOR [REST <PRIMTYPE WORD>]> (PLAYER) TIME)
		<SET PLAYER <4 .NNUTS>>
		<SET LUBLK <2 .NNUTS>>
		<PUT .NNUTS 1 .HIDX>
		<GET-LOC .LOC .TUV>
		<PUT .TUV 2 <CHTYPE .PLAYER FIX>>
		<PUT .TUV 3 <CHTYPE <DATA-READW ,TVASS <+ .LUBLK ,LASTIN>> FIX>>
		<PUT-LOC .LOC .TUV>
		<GET-LOC .LOC1 .TUV>
		<PUT .TUV 2 <GETLASTQ .LUBLK>>
		<GET-TOTAL .LUBLK <REST .TUV 2>>
		<PUT-LOC .LOC1 .TUV>
		<COND (<EMPTY? <SET NNUTS <REST .NNUTS 4>>>
		       <DATA-APRINT ,TVASS
				    ,LUSERS
				    ,LOSSSPACE
				    <SETG LOSSTABLE <REVERSE .NUTS>>>
		       <RETURN>)
		      (T
		       <SET LOC <+ .LOC 4>>
		       <SET HIDX <+ .HIDX 1>>
		       <SET LOC1 <+ .LOC1 4>>)>>
	<NEW-TODO>>

<DEFINE GET-TOTAL (LUBLK UV
		   "AUX" (SCORED
			  <DATA-AREAD ,TVASS
				      <+ .LUBLK ,SCORE>
				      <ARESET ,ASPACE>>)
			 (TOTAL 0.000)
			 (POSS 0.000))
	#DECL ((LUBLK) FIX (UV) <UVECTOR [REST <PRIMTYPE WORD>]>
	       (SCORED) <UVECTOR [REST <UVECTOR [2 FLOAT]>]>
	       (TOTAL POSS) FLOAT)
	<MAPF <>
	      <FUNCTION (X) 
		      <SET TOTAL <+ <1 .X> .TOTAL>>
		      <SET POSS <+ <2 .X> .POSS>>>
	      .SCORED>
	<PUT .UV 1 <CHTYPE .TOTAL FIX>>
	<PUT .UV 2 <CHTYPE .POSS FIX>>>

<DEFINE FLUSH-PLAYER (PLAYER "AUX" (LOSSTABLE <DATA-AREAD ,TVASS 3 <ARESET ,QSPACE>>)
	       (RPLAYER <CHTYPE <STRTOX .PLAYER> TIME>)
	       (LUBLK <3 <MEMQ .RPLAYER .LOSSTABLE>>)
	       (TINDEX <4 <MEMQ .RPLAYER .LOSSTABLE>>)
	       (FOO <ALIST <ARESET ,ASPACE> 1>) (TVA ,TVASS) (ASP ,ASPACE))
	#DECL ((PLAYER) STRING (LOSSTABLE) LIST (LUBLK TINDEX) FIX (RPLAYER) TIME)
  <DATA-APRINT .TVA <+ .LUBLK ,QNEXT> .ASP .FOO>
  <DATA-DELETE .TVA <+ .LUBLK ,QNEXT>>
  <DATA-APRINT .TVA <+ .LUBLK ,ANEXT> .ASP .FOO>
  <DATA-DELETE .TVA <+ .LUBLK ,ANEXT>>
  <DATA-APRINT .TVA <+ .LUBLK ,ALAST> .ASP .FOO>
  <DATA-DELETE .TVA <+ .LUBLK ,ALAST>>
  <DATA-DELETE ,TVASS <+ .LUBLK ,SCORE>>
  <DATA-APRINT .TVA <+ .LUBLK ,LASTIN> .ASP .FOO>
  <DATA-DELETE .TVA <+ .LUBLK ,LASTIN>>
  <DATA-APRINT .TVA <+ .LUBLK ,LASTGRD> .ASP .FOO>
  <DATA-DELETE .TVA <+ .LUBLK ,LASTGRD>>
  <DATA-DELETE ,TVASS <+ .LUBLK ,QASKED>>
  <DATA-APRINT .TVA <+ .LUBLK ,MNEXT> .ASP .FOO>
  <DATA-DELETE .TVA <+ .LUBLK ,MNEXT>>
  <DATA-APRINT .TVA <+ .LUBLK ,MLAST> .ASP .FOO>
  <DATA-DELETE .TVA <+ .LUBLK ,MLAST>>
  <DATA-APRINT .TVA <+ .LUBLK ,ANNEXT> .ASP .FOO>
  <DATA-DELETE .TVA <+ .LUBLK ,ANNEXT>>
  <DATA-APRINT .TVA <+ .LUBLK ,TAILOR> .ASP .FOO>
  <DATA-DELETE .TVA <+ .LUBLK ,TAILOR>>
  <DATA-APRINT .TVA <+ .LUBLK 11> .ASP .FOO>
  <DATA-DELETE .TVA <+ .LUBLK 11>>
  <COND (<==? <1 .LOSSTABLE> .RPLAYER>
	 <SET LOSSTABLE <REST .LOSSTABLE 4>>)
	(<REPEAT ((L .LOSSTABLE) (M <REST .L>))
		 <COND (<==? <1 .M> .RPLAYER>
			<PUTREST .L <REST .M 4>>
			<RETURN>)>
		 <SET L .M>
		 <SET M <REST .M>>>)>
  <SET LOSSTABLE <ACOPY <ARESET ,LOSSSPACE> .LOSSTABLE>>
  <DATA-APRINT ,TVASS 3 ,LOSSSPACE .LOSSTABLE>
  <DATA-PRINTW ,TVASS ,HIPOFFSET <- <CHTYPE <DATA-READW ,TVASS ,HIPOFFSET> FIX> 1>>
  <GET-LOC <+ ,PG ,PEEK-START <* 4 .TINDEX>> ,TUV>
  <PUT ,TUV 2 0>
  <PUT ,TUV 3 0>
  <PUT ,TUV 4 0>
  <PUT-LOC <+ ,PG ,PEEK-START <* 4 .TINDEX>> ,TUV>
  <SETG LOSSTABLE <DATA-AREAD ,TVASS 3 <ARESET ,LOSSSPACE>>>>

<DEFINE CHAIN-LENGTH (WD "AUX" (CNT 0))
    #DECL ((WD) <PRIMTYPE WORD> (CNT) FIX)
    <REPEAT ((WD <CHTYPE .WD FIX>))
	<COND (<0? <SET WD <CHTYPE <DATA-READW ,TVASS .WD> FIX>>>
	       <RETURN .CNT>)
	      (<SET CNT <+ .CNT 1>>)>>>

<DEFINE NEW-TODO ("AUX" (LOSSTABLE ,LOSSTABLE))
  #DECL ((LOSSTABLE) <LIST [REST TIME STRING FIX FIX]>)
  <REPEAT ((UV <UVECTOR 0 0 0>) (CT 0) (BEG <+ ,PG ,TELEC-START 1>))
	  #DECL ((UV) <UVECTOR <PRIMTYPE WORD>> (CT BEG) FIX)
	<PUT .UV 3 <CHAIN-LENGTH <+ <3 .LOSSTABLE> ,ANEXT>>>
	<PUT-LOC <+ .BEG <* 4 <4 .LOSSTABLE>>> .UV>
	<COND (<EMPTY? <SET LOSSTABLE <REST .LOSSTABLE 4>>>
	       <RETURN>)>>>

<DEFINE REVERSE (FOO "AUX" (TTE <REST .FOO>) (RETL ())) 
	#DECL ((FOO TTE RETL VALUE) LIST)
	<COND (<EMPTY? .TTE> .FOO)
	      (T
	       <REPEAT ()
		       <SET RETL <PUTREST .FOO .RETL>>
		       <COND (<EMPTY? <SET TTE <REST <SET FOO .TTE>>>>
			      <RETURN <PUTREST .FOO .RETL>>)>>)>>/F(."}ñ¢žCŸùÑ(yøðiӓøó¢Äô	*LŸúq_ yúqjGAúÐ<UôX2iô"I¥ù°h Yú• Ó§ô(E‹ùkhAø¯Ÿ>Sô
* yúqjGAùhOøÔâÔAöLß yúqjGAúbË[úu Ò©ô
ß y.$
<COND (<GASSIGNED? $TLOSE>
       <SETG PG <* 1024 <DIRMAP ,TVASS ,PEEK-)<$4 ððD^ûlF™ú´ä-¡ùlÅ¥ôâE‡ùˆ"­ø3*ÅEôgYAúu)IøêPA¥ø´âÔAøjA[ø4¢Á‰ôêR©ùöA™ù4ê ‰ø5 ­ƒú¤Î©ô ԃõ±"̋ú‘PA‡ùô, ‰ø5 ­¥ø°bWAøjA[ú¤Î©úè#Å©õ³'ÃAúj-™ùðÐ%yúQæO‡ô+A§úh*>Aô¯*Y¡ø«k ƒúvfU›ô¢Ã©ùôŸ K÷”£ÌŸøh(Ó¡ø0â ©÷ȼ©û4"­¯ôèA‡ø¨+E‡ú“é>Aô¯)G™ùðÐA§úaÅAú%yúQæO‡ôgE±úˆ*>Aô¯)G™ùðÐM™ø4ê ©÷ȼ¥øó'ÃAø3§E±úˆ*>Aô¯)G™ùðÐTƒù3'ÒAú%yúQæO‡ô'Ó§út Ëô K÷”£ÌŸøh(GAú%yúQæO‡ô*ÖAú%yúQæO‡ô'Ó§úaL‹ô]A$ð5DAd/Py>~BI1Z8ýòtÁð(ÓEel:'@BMLb$nAHeîXtH8ðÔ±xD!/LOX* øw¾³ð4SBF|w<n(@H`,09øì˜ü×nðd+h#H2X;hD	L
U(_h$FðdŸUp[ðô¿0dð<Ñ@nðëC,n	AðÐh `(ð0¹ð×ðõðð€1ðü‰xKðp§(]fðTã@w0CL$p(÷ÈŠñO Ήô Ó§ù1çE‰÷è#Ì«ø¯.ù•b yúj YøÓ*ӑõ´&A³ø´G™ú±P!·ö,Y7eöŽ7eôY´göM˜¶göŒÜ eö
·AöÍÜ´mö¬ göLÙ¸a÷Ü4Aö,Ú2eö®Y0Aö,Ú2eö®Y0Aö,Ú2e÷,\4AöLZ7i÷
¶aô˜´oöŽ1mö°aölY9qöÎ3e÷[ göm˜3k÷
1gö´gön2aö,Ù6mö8aö¬Ø´köì3e÷[ gömZ´iöŒ3g÷[8göÈ8köLY6oöÈ7eöÌÙ¹göȹgö-¹qö­3a÷
Ù°cö
™¶Aöͳs÷
™°iô8c÷\·cô
¸aöíZ möìX9möm-cönY8iöÌÛ8aôX7göí¸eöˆ6eö-!»÷ϐ
ñ¢žS‹ú‘ÐC‘ø2g-™ø³£Ô‘ô	Á Að%,6Hõ¤,hõ`€U/Zxõƒp,6höèMõ kõƒpõ¯ÿýöèMõ kô¸	õÀœuõ¸õ„õ¯ÿýõ¯ÿýDp DXö±4 _‡õå´õ`4:_‡õ`4/hôƒp+Kp 
HEXKûlC‘ø2g-™ø³£Ô‘ôâE‡ùˆ"­ø3*ÅEô¤ØA÷”)I›ú–hEAúóéD}õ("A©ø+iEƒø•Ð%yúQæO‡ô+A§úh*>Aô¯*Y¡ø«k ƒúvfU›ô¢Ã©ùôŸ]A
ð5DAd/Py>C,n	AðÐD!/LOð¬	høw¾³h`øì˜ü×nð(CL$p(÷ÈŠñO Ήô Ó§ù1çE‰÷è#Ì«ø¯.ù•b yúj Yør ɝõ³"Ώú’G™ú±P!·ö,·sömœ´iô7sö͜²i÷6eö-!»÷ϐ
ñ¢žS‹ú‘ÐN‹úëjO‰ùèƒA.,hõ`€U/Zxô¸õÀœuõƒpõ„öèMõ kõƒp,6h)õƒp,6h)õƒp,6h)õƒp,6h)ô€õ‡ƒ¥yõ€,6ô¸
õÀœu,6õ„õƒpõ´Sõƒp,6h*ô€õ‡ƒtõ€,6öèMõ k _‡ _ï}ö‘qZö‘ƒqZö‘ƒqôõÊõƒp,6 B_ï}Bp _ï~õÁ´Uö©ƒqûâ/F h+ö+q D _ï}ô	öƒqZ÷¹4;öƒqô(.Xõƒp,6õ¯ÿûõ¯ÿûDp _ï} $öƒqZ÷¹4I B_ï}ö°´!ô8õå´Wôƒp'+KpðWð$4 @SMi;ûlN‹úëjO‰ùèċøs(EúÐfU‹ôH ԟùªPC‘ø2g-™ø³£Ô‘ô*Ô[ù“á K÷”£ÌŸøh&O§úu ™ø¨*>Aô¯)G™ùðÐPô ©û¨ Að5DAd/Py>)BF|wPn@BF|w<n(@x%BMLb$ýÐdøR]Àeþ•äD!/LOð¬	øw¾³høì˜ü×nPpPð´CC,n	AðÐ8CL$p(÷ÈŠñO Ήô Ó§ù1çE‰÷è#Ì«ø¯.ù•b yúj YùÑk­©ùñ' ù•b Cûl[¹qö¬\³aöN8aö­\4q÷-8iöŽP1aöŽ¸iôœ¸qö¶aôÝ}÷ÈŠñO)Å©øè)E­ø´©ÅAôàÐ Að),6Hõ¤,hõ`€U/Zx XöƒqZõƒp,6õƒpõ´#öèMõ k _‡5Bh	 _ï~+höèMõ k X _ï~XB DX _‡Z B_ï~ F_‡5Fh	 ôXF/hôƒp+Kp0ñ­O’=ûlR‹úÑiS‹ôâE‡ùˆ"­ø3*ÅEô&I§úˆ γ÷È&I§úŠn A
ð5DAd/Pÿ/€#D!/LOX øw¾³ð4
øì˜ü×ýÀ	XBF|w<ýÄCL$p(÷ÈŠñO Ήô Ó§ù1çE‰÷è#Ì«ø¯.ù•b yúj YúQkE¥úqPG™ú±P!·ö,³oö\³oô[4i÷ eö̘´qô7_>A
)<,S.BUCKET .START <+ <NTH .BUCKET .START> 1>>)>>>

<DEFINE MARK-Q-CHAIN (BUCKET DC
		      "AUX" Q S (START ,LOWQUES) (TVS <ARESET ,QSPACE>))
	#DECL ((BUCKET) <UVECTOR [REST FIX]> (DC) ASYLUM (S START) FIX
	       (TVS) SPACE (Q) VECTOR)
	<REPEAT ()
		<COND (<0? <SET START <CHTYPE <DATA-READW .DC .START> FIX>>>
		       <RETURN>)
		      (T
		       <SET Q <DATA-AREAD .DC .START <ARESET .TVS>>>
		       <SET S <QSCORE .Q>>
		       <PUT .BUCKET .START <+ <NTH .BUCKET .START> 1>>
		       <COND (<AND <0? .S> <==? <QTYPE .Q> ,$TSIMPLE>>)
			     (T <PUT .BUCKET .S <+ <NTH .BUCKET .S> 1>>)>)>>>

<DEFINE MARK-UBLOCK (LUBLK UV "AUX" (MARKS '![1 1 1 1 1 1 1 1 1 1 1 1]))
  #DECL ((LUBLK) FIX (UV MARKS) <UVECTOR [REST FIX]>)
  <SUBSTRUC .MARKS 0 12 <REST .UV <- .LUBLK 1>>>>

<DEFINE PRESULT (UV DC ENABLE "AUX" MDATA (CT 0) (ULIST (0)) POINT
		 (FLIST (0)) CLIST) 
   #DECL ((ENABLE) <OR ATOM FALSE> (CLIST ULIST FLIST) <LIST [REST FIX]>
	  (UV) <UVECTOR [REST FIX]> (DC) ASYLUM (CT POINT) FIX
	  (MDATA) <UVECTOR [4 <PRIMTYPE WORD>]>)
   <MARK-FREE .UV .DC>
   <MAPF <>
    <FUNCTION (X) 
       #DECL ((X) FIX)
       <SET CT <+ .CT 1>>
       <COND
	(<0? .X>
	 <SET MDATA <DATA-FIND .DC .CT>>
	 <COND (<L? <SET POINT <CHTYPE <3 .MDATA> FIX>> 0>
		<SET POINT <CHTYPE <ANDB .POINT *777777*> FIX>>
		<SET CLIST .FLIST>)
	       (T
		<SET CLIST .ULIST>
		<SET POINT <CHTYPE <4 .MDATA> FIX>>)>
	 <COND
	  (<NOT .ENABLE> <PUTREST .CLIST (.CT !<REST .CLIST>)>)
	  (<EMPTY? <REST .CLIST>> <PUTREST .CLIST (.CT <- .POINT>)>)
	  (<REPEAT (TEMP (NL <REST .CLIST>) (OLD .CLIST) (FCT <- .CT>) (WON2 <>)
		    (WON1 <>) (LASTM .CLIST) TLIST)
		   #DECL ((TEMP FCT) FIX (TLIST LASTM NL OLD FCT) <LIST [REST FIX]>
			  (WON2 WON1) <OR <LIST [REST FIX]> FALSE>)
		   <COND (<AND <==? <SET TEMP <1 .NL>> .POINT> <G? .POINT 0>>
			  <COND (.WON2
				 <PUTREST .OLD ()>
				 <SET TLIST <REST .WON2 2>>
				 <PUTREST .WON2 .NL>
				 <PUTREST <REST/*ñ¨€(
MJ:ûlCŸùÕ¢Ò©õ³'Ó§ôâE‡ùˆ"­ø3*ÅEôjO›õ( ҋúqj ‰ø5 ­ƒúQ`ÄAúQkE¥úqPDƒúVÐ¥ù3ªWAøñj-™ùðÐDƒúVҋø1+ ¡úµ̟øh#Å©ùiÔ£ôâÔ[ú“êA™ô ԃõ°hR“ùÕN‹úëjO‰ùè¼¥øó'ÃAú• Ó§ô K÷•,ЋõµÐA§û3*ÍAúÑaԟúO%yúQæO‡ô'Ó§út Ëô K÷•,ЋõµÐS¡ø0â ­ø°êO¥÷ȼ¥øó'ÃAú•k ©÷ȼ¥øó'ÃAúÐT}ô	^Rù“á ™ùôéԃøS" ©÷×P Að5DAd/Py>gBF|wPn@5xLBF|w<n()ðTePI
@BMLb$ýÐd?HD!/LOXîxøw¾³ð4pC,n	AðÐhðÔ9ðo
pZXøì˜ü×nð(@00& OðÄÍCL$p(÷ÈŠñO Ήô Ó§ù1çE‰÷è#Ì«ø¯.ù•b yúj YøsçV‹úU̟útÐG™ú±P!·ö-Ù°aöŽ8söȳg÷™0gö-˜0Aö-ظqö¬˜°oöH²q÷X°qöŽ möìX²söÌ2cö̜´iôY¶söš2aö¬8g÷-œ0qô\2oöÜ9e÷2cöŽ5aöY [ö-œ¹kölX3göÈ1söŒØ4aö eô7_>Añ¢†ŠyúqjGAøñj-©ùõ ÌAôàÐ A,,6Hõ¤,6Hõ¤,hõ`€U/Zxô¸õÀœuõ¸
õ„ _ï~õȀõƒpõ€ô¸õÀœuõ¸õ„Bpõ€,6Fpõ€,6,6p,6h&,6p,6h&öèMõ kõƒpõ´Mõ¯ÿùõ¯ÿù X5"h h'.@Xõƒp,6öèMõ k X _ï|ô„_ï} D_ï| F_ï}õå´Oõ`4#/h( _ï}ö¨ƒqûá/Bòè4Qö+q _‡ @ô.h'ö©q_õñ h)ö+q X @/h'õå´Sôƒp+Kpð $4$4P(T{CûlG‹ú‹jO©ø3#‰ø°æ QôU Ì«ø¨<«úÑaԟúH#I±ô¤ØAût¢Ó©ô(R“ùµ,Ћôç҉÷×_ ù6<«úÑaԟúH-ҋúu<¡úRfÔ³úPWŸúQ]}õ( ҋúqj ‰ø5 ­ƒúQ`ÄAô¯)G™ùðÐT­ø4é ©÷ȼ©û4"­¯ôiٙú³PV‹øu'Ò}ô	^Rù“á ƒút Ëô K÷•,ЋõµÐS¡ø0â ­ø°êO¥÷×P Aðð5DAd/Py>&BF|wPn@0BF|w<ýÄ7D!/LOð¬Xøw¾³hPøì˜ü×nPXC,n	AðÐ	CL$p(÷ÈŠñO Ήô Ó§ù1çE‰÷è#Ì«ø¯.ù•b yúj Yøñj-©ùõ ÌAøó*ÅAô6Û°iö¬Y5cô²iöŒØ9cöH1iöí3mö­š eöΰcöM eö-´qömš8aô
Y4e÷-Ý}÷ÈŠñO)Å©øè#L«úrЙø6bÒAôàÐ A,6Hõ¤,hõ`€U/Zxô¸õÀœuõ¸õ„õƒp,6h~ô¸!õÀœuõ¸#õ„Bpõ€,6Fpõ€,6õ¯ÿýõ¯ÿýBp,6p,6 _‡ X4Bhòè4ý1@öQ7õ`4%Z5Bh "öƒqZöƒqZöƒqõƒpõ„ _ï~ _‡4Bhòè4ý1@öQ7õ`47Z5Bh "ô	öƒqZ=dhöƒqõƒpõ„ô¸%õÀœuõ¸#õ„Bpõ€,6õƒp,6h€Dpõ€,6ô¸õÀœu,6õ„ô¸%õÀœu,6õ„öèMõ kõ¯ÿýõ¯ÿý _ï{."õƒpõ€õ¯ÿûõ¯ÿûõ¯ÿõõ¯ÿõHpõ¯ÿýõ¯ÿý _ï{."õƒpõ€Dpõ¯ÿýõ¯ÿý _ï{õȀõƒpõ€õ¯ÿûõ¯ÿûõ¯ÿõõ¯ÿõHpõ¯ÿýõ¯ÿý _ï{õȀõƒpõ€Dpõ¯ÿýõ¯ÿý _ï{."õƒpõ€õ¯ÿûõ¯ÿûõ¯ÿõõ¯ÿõHpõ¯ÿýõ¯ÿý _ï{."õƒpõ€Dpô¸õÀœuõ¸õ„ _ï{õȀõƒpõ€Dpõ¯ÿýõ¯ÿý _ï{."õƒpõ€õ¯ÿûõ¯ÿûõ¯ÿõõ¯ÿõHpõ¯ÿýõ¯ÿý _ï{."õƒpõ€Dpõ¯ÿýõ¯ÿý _ï{õȀõƒpõ€õ¯ÿûõ¯ÿûõ¯ÿõõ¯ÿõHpõ¯ÿýõ¯ÿý _ï{õȀõƒpõ€Dpô¸õÀœuõ¸õ„ _ï{."õƒpõ€Dpõ¯ÿýõ¯ÿýõ¯ÿõõ¯ÿõô¸'õÀœu,6õ„ "õ‡ƒtõ€,6õ¯ÿûõ¯ÿûõ¯ÿõõ¯ÿõHpõ¯ÿýõ¯ÿýõ¯ÿõõ¯ÿõô¸'õÀœu,6õ„ "õ‡ƒtõ€,6Dpõ¯ÿýõ¯ÿýõ¯ÿõõ¯ÿõô¸)õÀœu,6õ„ "õ‡ƒtõ€,6õ¯ÿûõ¯ÿûõ¯ÿõõ¯ÿõHpõ¯ÿýõ¯ÿýõ¯ÿõõ¯ÿõô¸)õÀœu,6õ„ "õ‡ƒtõ€,6Dpõ¯ÿýõ¯ÿýõ¯ÿõõ¯ÿõô¸+õÀœu,6õ„ "õ‡ƒtõ€,6õ¯ÿûõ¯ÿûõ¯ÿõõ¯ÿõHpõ¯ÿýõ¯ÿýõ¯ÿõõ¯ÿõô¸+õÀœu,6õ„ "õ‡ƒtõ€,6Dpõ¯ÿýõ¯ÿýõ¯ÿõõ¯ÿõô¸-õÀœu,6õ„ "õ‡ƒtõ€,6õ¯ÿûõ¯ÿûõ¯ÿõõ¯ÿõHpõ¯ÿýõ¯ÿýõ¯ÿõõ¯ÿõô¸-õÀœu,6õ„ "õ‡ƒtõ€,6Dpõ¯ÿýõ¯ÿý _ï{õȀõƒpõ€õ¯ÿûõ¯ÿûõ¯ÿõõ¯ÿõHpõ¯ÿýõ¯ÿý _ï{õȀõƒpõ€Dp _ïzöƒqòè4ÿ1@	ô„ ô„ h3F_ï{0@+h. _ïz $öƒqZ÷¹4W B_ïzõ`4}õ¯ÿóõ¯ÿó XZõƒpõ€öèMõ k Xöƒqòè4ÿ1@	ô„ ô„ h3F_ïy0@+h< X $öƒqZ÷¹4q _‡XBõå´õ`4} XZ B_‡ DX+h1ô¸/õÀœuõ¸#õ„Bpõ€,6õ¯ÿñõ¯ÿñDp	ô¸õÁœuõ¸õŒõƒp,6h~ô¸/õÁœuõ¸#õŒõ€,6Hpô¸õÀœuõ¸õ„õƒp,6hô¸õÀœuõ¸õ„õƒp,6hDp
õéõƒp,6Fpô¸1õÀœu,6õ„õƒpõ´ _ï{(õƒpõ€ô€õ‡ƒtõ€,6ô¸3õÀœuõƒpõ„Dpô¸3õÀœuô ôƒp (õƒp,6hõ‡ƒ|ô¸3õÀœuô ôƒpô
õƒp,6hõ‡ƒ|ô¸3õÀœuô ôƒp (õƒp,6hõ‡ƒ|ô¸1õÀœu,6õ„õƒpõ´ _ï{(õƒpõ€ô€õ‡ƒtõ€,6ô¸3õÀœuõƒpõ„Dpîô¸õÀœuõ¸õ„õƒp,6h~ô¸/õÀœuõ¸#õ„Bpõ€,6Fpô¸5õÁœu Bô ôõå´+Kpð$4ð$4î""}R*9OM FALSE>)
  <ALLOC-MAP .DC>
  <SET HI
	<CHTYPE <1 <GET-LOC <+ ,HIGHID <* <ALLOCPAGE .DC> 1024>> .UV1>> FIX>>
  <GUNASSIGN MOBY>
  <ARESET .SP>
  <SETG MUV <SET UV <AIUVECTOR .SP .HI 0>>>
  <MARK-CHAIN ,LOMAIL .UV .DC>
  <SSNAME <STRTOX "MARKQ">>
  <MARK-Q-CHAIN .UV .DC>
  <REPEAT (LUBLK)
    <COND (<EMPTY? .LOSSTABLE> <RETURN>)>
    <SET LUBLK <3 .LOSSTABLE>>
    <SSNAME <1 .LOSSTABLE>>
    <MARK-UBLOCK .LUBLK .UV>
    <MARK-CHAIN <+ .LUBLK ,ANEXT> .UV .DC>
    <MARK-CHAIN <+ .LUBLK ,MNEXT> .UV .DC>
    <SET LOSSTABLE <REST .LOSSTABLE 4>>>
  <SUBSTRUC <IUVECTOR 27 1> 0 27 .UV>
  <PRESULT .UV .DC .ENABLE>>

<DEFINE MARK-CHAIN (START BUCKET DC)
  #DECL ((START) FIX (BUCKET) <UVECTOR [REST FIX]> (DC) ASYLUM)
  <REPEAT ()
    <COND (<0? <SET START <CHTYPE <DATA-READW .DC .START> FIX>>>
	   <RETURN>)
	  (T
	   <PUT R0(/*<USE-TOTAL "ASYLUM">

<USE "MADMAN">

<FLOAD "AR2:TAA;SSNAME NBIN">

<DEFINE GUNUSED ("OPTIONAL" (ENABLE T)
		 "AUX" (DC ,TVASS) UV HI (LOSSTABLE ,LOSSTABLE) (UV1 ,DUV1)
		 (SP <OR <AND <GASSIGNED? MOBYSPACE>
			      ,MOBYSPACE>
			 <SETG MOBYSPACE <AFIND 4>>>))
  #DECL ((DC) ASYLUM (HI) FIX (UV UV1) <UVECTOR [REST <PRIMTYPE WORD>]>
	 (LOSSTABLE) <LIST [REST TIME STRING FIX FIX]> (SP) SPACE
	 (ENABLE) <OR AT(ð€GC">
<GROUP-LOAD "TVHACK GBIN">
<GROUP-LOAD "BABBLE GBIN">
<CLEANUP>
<PRINT-CLEANUP>
<SET X ,PURELST>
<SETG PATCH <IUVECTOR 30>>
<GROUP-PURIFY X <> ,PWTERM ,SEQ-BITS ,FROBS ,FROB-NAMES ,STATUS-VECTOR ,WINNERS
	,LOSEMSG ,NEWMSG ,COMS ,DCOM ,QTYPES ,CATS ,GIVEUP ,Tð€!uð€X?ANUP>
<UNASSIGN X>
<REMOVE <UNASSIGN TVHACK>>
<REMOVE <UNASSIGN MCC!

hactrnj

vrsadr/:if n q-1'645
(:(New version of DDT)

)
prompt/7type 20
20/0"MAR--
21/0">
22/ 0

.

:tctyp query,line=79.
:exists common;mar mail
=:if e q
(:print  
:-save?-*
:if more 0
(:RENAME  ,mar omail
1=):if e q
(:delete  
:*-flushed-*
))

:msgs
:alarm 22:00:00

:tvtodo

:whoj
! 

END	START
 X.i<USE "GLUE">
<GROUP-LOAD "MARC;TVGUTS NBIN">
<GROUP-LOAD "MARC;TVFROB NBIN">
<GROUP-LOAD "MARC;TVCRFT NBIN">
<SET MC.
     <DA11N
		  <+ .NINDEX ,LASTGRD>
		  <DATA-READW .D <+ .CINDEX ,LASTGRD>>>8#>4ñ¢žCŸùÑ(yøðiӓøó¢Äô	*LŸúq_ yúqjGAúÐ<UôX2iô"I¥ù°h Yú• Ó§ô(E‹ùkhAø¯Ÿ>Sô
* yúqjGAùhOøÔâÔAöLß yúqjGAúbË[úu Ò©ô
ß yúqjGAøPaB™ø«iԃúU6o÷/<§øµ# ƒùÑlTAö/<§øµ# §øséEAöo<§øµ# £ùÑlTAö<§øµ# ©ø³"Ã[úu Ò©ôÚ3}ô&Áù1¢Ó©ô$ПøÑ©Å©ô"ŗõ´êA¥úˆ!A…øS"­§úiTAø3¢Ø©ôáÏ¥ø¨(΋ûT‹ù‘a­§úiT}õ/
ñ¢žS‹ú‘ÐCŸùÕ¢Ò©õ³'Ó§ôÐ Aðç,hõ`€U/Zxõƒp,6hgô¸õÀœuõ¸!õ„õƒpõ´Ïô¸#õÀœuõ¸%õ„Bpõ€,6Fpîõ€,6õ‡´³õ€,6öèMõ kô¸õÀœuõ¸!õ„õƒp,6hh _ï~õ`4#û‡ÿÿüƒÿÿ*Bhûx&"õƒpõ€ B_ï|Fpõƒp,6hgõ¯ÿýõ¯ÿýõƒp,6hg,6p,6hgô¸'õÀœuõƒpõ„ô¸)õÀœu,6õ„õƒpõ´Ñ "õ‡ƒtõ€,6ô¸)õÀœu,6õ„õƒp,6hi "õ‡ƒtõ€,6õƒp,6hgöèMõ k _ïzô	öƒqZ÷¹4Qöƒqô _ïzZô _ï{ô„õ¯ÿûõ¯ÿûõ¯ÿ÷õ¯ÿ÷ D_ïz H_ï~Dp _ï}õÀ´Óö¨ƒqûá/B hjö+q _ï| @ _ï}ô8õÁuõ¸!õˆ _‡.$õƒp,6 B_ïwDp
 _ïyõÀ´Õö¨ƒqûá€õð€ hkö+q Dõ¯ÿûõ¯ÿûõ¯ÿ÷õ¯ÿ÷Dp	õ¯ÿýõ¯ÿýõ¯ÿ÷õ¯ÿ÷Dp _ï}õ¯ÿÿõ¯ÿÿ B_ïxBp _ïyõÁ´Óö©ƒqòê4×ûâ€õñ€ hl0@ +q Dõ¯ÿÿõ¯ÿÿ _ï|õÀ´Ùõƒpõ€,hqõ¯ÿýõ¯ÿýõ¯ÿ÷õ¯ÿ÷Dp	 _ïz $öƒqZ÷¹4§ B_ïz5Bhaô8õÁuõ¸!õˆõƒpõ´Ïô8#õÁuõ¸%õˆõ¯ÿéõ¯ÿéõ‡´³ô¸+õÁœu Bô,6õŒHp/hm+he _ï~.$:_ï{ _‡.( D_ï~ H_‡õ`4Mõ‡´Yõå´Ûôƒp'+Kpðððð§ð$4$4ô$4( ,6Hõ¤,6Hõ¤,hqõ`€U/Zxô¸õÀœuõ¸!õ„ _ï~õȀõƒpõ€ô¸-õÀœuõ¸%õ„Bpõ€,6Fpîõ€,6,6p,6h,6p,6höèMõ kõƒpõ´)õ¯ÿùõ¯ÿù X5"h h.@Xõƒp,6öèMõ k X _ï|ô„_ï} D_ï| F_ï}õå´+õ`4ÿ/h _ï}ö¨ƒqûá/Bòè4-ö+q _‡ @ô.hö©q_õñ hö+q X @/hõå´/ôƒp+Kpð $4$4P,6Hõ¤,hõ`€U/Zxô¸õÀœuõ¸!õ„õƒp,6hô¸/õÀœuõ¸%õ„Bpõ€,6Fpîõ€,6õ¯ÿýõ¯ÿýBp,6p,6 _‡ X4Bh*òè4-1@öQ7õ`4UZ5Bh& "öƒqZöƒqZöƒqõƒpõ„ _ï~ _‡4Bh3òè4-1@öQ7õ`4gZ5Bh/ "ô	öƒqZ=dh4öƒqõƒpõ„ô¸-õÀœuõ¸%õ„Bpõ€,6õƒp,6hDpõ€,6ô¸õÀœu,6õ„ô¸-õÀœu,6õ„öèMõ kõ¯ÿýõ¯ÿý _ï{."õƒpõ€õ¯ÿûõ¯ÿûõ¯ÿõõ¯ÿõHpõ¯ÿýõ¯ÿý _ï{."õƒpõ€Dpõ¯ÿýõ¯ÿý _ï{õȀõƒpõ€õ¯ÿûõ¯ÿûõ¯ÿõõ¯ÿõHpõ¯ÿýõ¯ÿý _ï{õȀõƒpõ€Dpõ¯ÿýõ¯ÿý _ï{."õƒpõ€õ¯ÿûõ¯ÿûõ¯ÿõõ¯ÿõHpõ¯ÿýõ¯ÿý _ï{."õƒpõ€Dpô¸õÀœuõ¸!õ„ _ï{õȀõƒpõ€Dpõ¯ÿýõ¯ÿý _ï{."õƒpõ€õ¯ÿûõ¯ÿûõ¯ÿõõ¯ÿõHpõ¯ÿýõ¯ÿý _ï{."õƒpõ€Dpõ¯ÿýõ¯ÿý _ï{õȀõƒpõ€õ¯ÿûõ¯ÿûõ¯ÿõõ¯ÿõHpõ¯ÿýõ¯ÿý _ï{õȀõƒpõ€Dpô¸õÀœuõ¸!õ„ _ï{."õƒpõ€Dpõ¯ÿýõ¯ÿýõ¯ÿõõ¯ÿõô¸1õÀœu,6õ„ "õ‡ƒtõ€,6õ¯ÿûõ¯ÿûõ¯ÿõõ¯ÿõHpõ¯ÿýõ¯ÿýõ¯ÿõõ¯ÿõô¸1õÀœu,6õ„ "õ‡ƒtõ€,6Dpõ¯ÿýõ¯ÿýõ¯ÿõõ¯ÿõô¸3õÀœu,6õ„ "õ‡ƒtõ€,6õ¯ÿûõ¯ÿûõ¯ÿõõ¯ÿõHpõ¯ÿýõ¯ÿýõ¯ÿõõ¯ÿõô¸3õÀœu,6õ„ "õ‡ƒtõ€,6Dpõ¯ÿýõ¯ÿýõ¯ÿõõ¯ÿõô¸5õÀœu,6õ„ "õ‡ƒtõ€,6õ¯ÿûõ¯ÿûõ¯ÿõõ¯ÿõHpõ¯ÿýõ¯ÿýõ¯ÿõõ¯ÿõô¸5õÀœu,6õ„ "õ‡ƒtõ€,6Dpõ¯ÿýõ¯ÿýõ¯ÿõõ¯ÿõô¸7õÀœu,6õ„ "õ‡ƒtõ€,6õ¯ÿûõ¯ÿûõ¯ÿõõ¯ÿõHpõ¯ÿýõ¯ÿýõ¯ÿõõ¯ÿõô¸7õÀœu,6õ„ "õ‡ƒtõ€,6Dpõ¯ÿýõ¯ÿý _ï{õȀõƒpõ€õ¯ÿûõ¯ÿûõ¯ÿõõ¯ÿõHpõ¯ÿýõ¯ÿý _ï{õȀõƒpõ€Dp _ïzöƒqòè4/1@	ô„ ô„ h3F_ï{0@+hF _ïz $öƒqZ÷¹4‡ B_ïzõ`4­õ¯ÿóõ¯ÿó XZõƒpõ€öèMõ k Xöƒqòè4/1@	ô„ ô„ h3F_ïy0@+hT X>-H $öƒqZ÷¹4¡ _‡XBõå´1õ`4­ XZ B_‡ DX+hIô¸#õÀœuõ¸%õ„Bpõ€,6õ¯ÿñõ¯ÿñDpô¸õÁœuõ¸!õŒõƒp,6hô¸#õÁœuõ¸%õŒõ€,6Hpô¸õÀœuõ¸!õ„õƒp,6hô¸õÀœuõ¸!õ„õƒp,6hDp
õéõƒp,6Fpô¸)õÀœu,6õ„õƒpõ´3 _ï{(õƒpõ€ô€õ‡ƒtõ€,6ô¸'õÀœuõƒpõ„Dpô¸'õÀœuô ôƒp (õƒp,6hõ‡ƒ|ô¸'õÀœuô ôƒpô
õƒp,6hõ‡ƒ|ô¸'õÀœuô ôƒp (õƒp,6hõ‡ƒ|ô¸)õÀœu,6õ„õƒpõ´3 _ï{(õƒpõ€ô€õ‡ƒtõ€,6ô¸'õÀœuõƒpõ„Dp	ô¸õÀœuõ¸!õ„õƒp,6hô¸#õÀœuõ¸%õ„Bpõ€,6Fpîô¸+õÁœu Bô ôõå´5+Kpð$4ð$4$4 ðð,6Hõ¤,hõ`€U/Zxõƒp,6h*öèMõ kõƒpõ¯ÿýöèMõ kô¸õÀœuõ¸!õ„õ¯ÿýõ¯ÿýDp
 DXö±4O _‡õå´Uõ`4Q:_‡õ`4A/h+ôƒp+Kp õ‡´Yõ`€U/Zxô¸+õÀœuõƒpõ„öèMõ kõƒpõ´©õƒpõ´©õƒpõ´©õƒpõ´©ô€õ‡ƒ¥yõ€,6ô¸)õÀœu,6õ„õƒp,6hUõƒpõ´«ô€õ‡ƒtõ€,6öèMõ k _‡ _ï}ö‘qZö‘ƒqZö‘ƒqôõÊõƒp,6 B_ï},h _ï~.hVö©ƒqûâ/Fòè4­ö+q D _ï}ô	öƒqZ=dhIöƒqô(.Xõƒp,6õ¯ÿûõ¯ÿûDp	 _ï} $öƒqZ=dhP B_ï}5Bh<ô89/hWôƒp'+KpðWð$4 @,6Hõ¤õ‡´³õ`€U/Zx XöƒqZõƒp,6õƒp,6hiöèMõ k _‡ö°´Á _ï~õ`4ÏöèMõ k X _ï~XB DX _‡Z B_ï~ F_‡ö±´Á ôXFõå´Óôƒp+Kp0qðYð³
MJ:(T{CnD^
HEXKSMi;ðWñ­O’=ð¯0ûlCŸùÕ¢Ò©õ³'Ó§ôâE‡ùˆ"­ø3*ÅEôjO›õ( ßúPDƒúVċù‘jEAø3$Ó©ôêR©ùöDƒúVÁ¡úRgTAøñjLƒúu( ¡úµ̟øh"A©ø+iEƒø•ÐG‹ú‹fO‡ô ԃõ´)Iú•ÐDƒúVÁ¥ø°b ƒúQiÅ©ô	^Rù“á ©úÐiÓAú%yú–hE[úè Ó³ù•f ­ø°êO¥÷ȼ¥øó'ÃAù“éÓ§úaÅAú%yú–hE[úè)ЃøqPV‹øu'Ò}ô	^Rù“á ©úµT}ô	^Rù“á ¡øè*>Aô¯)G™ùðÐLŸútêA…ù‘PT}ô	^Rù“á ƒút Ëô K÷”£ÌŸøh(Ó¡ø0â ©÷ȼ¥øó'ÃAù³¢Ø©ô K÷”£ÌŸøh&̃úuT}ô	^Rù“á ƒùӢةô K÷”£ÌŸøh*A“ù“é ©÷È*]Akð5DAd/Py>gBF|wPn@5xLBF|w<n()ðTePI
@BMLb$ýÐd?HD!/LOXîxøw¾³ð4pC,n	AðÐhðÔ9ðo
pZXøì˜ü×nð(@00& OðÄÍCL$p(DAd/Py>BF|wPn@BF|w<ýÄhD!/LOð¬û8øw¾³h}0øì˜ü×nu0|`8C,n	AðÐåhCL$p(qDAd/Py>BI1Z8ýòtñðèEel:?)@BMLb$nAH} X"H$8*ð	”á0xD!/LOXB) øw¾³ð4ƒ)BF|w<n(+@-H6'`D)0Qøì˜ü×nð$[h;HJXSh\dm(w&h<)^ð$Ï-m-psð´ï/0|ðü0@ðPC,n	AðÐ7h8`@ððéðØðP%ðÈCð	@að
¼¹+xcð0×.(u/~ð1@20CL$p(DAd/Py>*C,n	AðÐED!/LOð¬?4øw¾³h4øì˜ü×nð
SCL$p(DAd/Pÿ/€©BF|wPýÄ BF|w<ýÄ}ð
üð(“ðX¡BMLb$nAH;øR]ÀetWH5D!/LOX07Pøw¾³ð4_7Høì˜ü×ýÀ]ð
„cð
”gð
Äs8 M:@C,n	A .6pCL$þTYDAd/Py>iD!/LOð¬½<øw¾³h^<øì˜ü×n\ðèÑBF|w<n([CL$þT³÷ÈŠñO Ήô Ó§ù1çE‰÷è#Ì«ø¯.ù•b yúj YøsçV‹úU̟útÐG™ú±P!·ö-Ù°aöŽ8söȳiöX4möì¶Aö-ظqö¬˜°oöH²q÷X°qöŽ möìX²söÌ2cö̜´iôY¶söš2aö¬8g÷-œ0qô\2oöÜ9eöÍ2cöŽ5aöY [ö-Ø6eöŒ\²aöµeöl˜µgöÈ7köL cömÙ4e÷6iô[²mömÚµeöÍ2eö­¶eöìY·A÷Ü8mö c÷µsöî¶aô
Y·c÷.6iôÙ7sö¬1a÷
Ø´iöÙ [ö-œ·qö­5söH1iö혴oöL2cöÛ1iöì˜ eö-¶möÎZ4Aõ¬Ú3k÷-Ù°cöí-göŒÚ¹oöl·môY0möÎY¹q÷
 köMX5mô
Y·mö­Ù´iô˜µaö̜´a÷²eö,™5mö1e÷°gölZ²Aö¬š°köȳm÷
Ø°iö´cö
œ³oöÈ5möm2qö-4gö̘´e÷-Û göX3möíÛ°gôY9gö.³aöMP-göŒ[µcöì›0qôY9gö,¹köm7söÎY0qö°oömÚ´cö­-cö͜¶s÷7eô[±o÷.9eöŽ1oö.²cöL9Aö.²eö,Z°oöH5qö,™±mö-Ð4e÷-¶oöN[ cö-±cöN¶AöL¸e÷,6kö¬Û cö욱cö왵gô›9i÷
3cô5eöX´AöM™4köH6e÷-Ø qö­Ð2möl±Cû¯Ÿ ñCE<§øµ# øµԟúf K÷”©Õ…úKbΩúVP'·øsçV‹úU̟útÐG‹ú‹jO©ø3#‰ø°æ QôU Ì«ø¨<«úÑaԟúH#I±ô¤ØAût¢Ó©ô(R“ùµ,Ћôç҉÷×_ ù6<«úÑaԟúH-ҋúu<¡úRfÔ³úPWŸúQ]}õ7P2eöŸ ñCE<§øµ# ù•iÈ[ú ًúH¼¥úuaR[ø³ªR³ô	íßùÕ¢Ò©õ³'Ó§ô¦U§ùhLƒû1i Gø‘aÌAõ«A™ú±Q ƒùÖPS©úRgGSû¨°i÷ϐ
ñ¢žS‹ú‘ÐC‘ø2g-™ø³£Ô‘ô	^R§ú°©-‹ùÕ)YAôöáϝúÑiT[ù“éÓAør ɝõ³"Ώú’#‰ø°æ QôU Ì«ø¨F“ûP¥ù3jY¡ø¨+Ï¥ø”ÝA÷™>}ôE
÷”âԏô¢×[ú“âOAô¯)S«øT–ŝú”¬ Oûpçέø´ª-™ùô頝øµÖԟø“Ð#‰ø°æ QôU Ì«ø¨A©ùóTÝA÷
Z¾}ôE
÷”âԏô¢Ö‹úTâ K÷”©Õ…úKbΩúVP'·øsçV‹úU̟útÐR‹úÑiS‹ôâE‡ùˆ"­ø3*ÅEô&I§úˆ γ÷È&I§úŠn söŒß>A
-H18XDOC >.
Describe bugs with TS TVBUG.
If TRIVIA absolutely refuses to work, bring it down with TS TVBUG.
/
BUF:	BLOCK	200
BUFPTR:	BUF-.,,BUF
8ðATITLE  HOLIDAYSd8#	      <FUNCTION (X Y) <PUT .X 1 <1 .Y>>>
	      .MARKV
	      '![1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
		 25 26 27!]>
	<SSNAME <STRTOX "MUNGLO">>
	<SETG LOSSTABLE
	      <MUNG-LOSS .N
			 .D
			 <ARESET .LSP>
			 <ARESET .SSP>
			 <ARESET .QSP>
			 .MARKV>>
	<SSNAME <STRTOX "RESERV">>
	<DATA-PRINTW .N ,HIQNUM <DATA-READW .D ,HIQNUM>>
	<DATA-PRINTW .N ,TOTSCR <DATA-READW .D ,TOTSCR>>
	<REPEAT ((CT ,1STCAT))
		#DECL ((CT) FIX)
		<DATA-PRINTW .N .CT <DATA-READW .D .CT>>
		<COND (<G? <SET CT <+ .CT 1>> 22> <RETURN>)>>
	<DATA-PRIð9;Uð!€W+ _‡õ‡ƒÄ‡6 x+@Dp+@Dgõ`4aô€i ôiô/ÿý H_‡øiõ€,6 _‡5"h0ô4«.@_‡õƒ€õ€öèM-R _‡ö¨ƒ‡1:_ï{ D/hV@@x+h!õå´­øi/hWõç´«õ¸	õ¯ÿí _ï~õȀõƒ€õ€õ¸õ¯ÿïõ¸	õ¯ÿé _ïzZôˆõɀõƒ€õ€õ¸õ¯ÿéõ‡ø
õ€,6õ‡øõ€,6õ‡ø _‡ _ï~ö‘‡1Zö‘ƒ‡1ô€PHôŒ &ö‘‡1ð!€m1NTW .N ,HIPOFFSET <DATA-READW .D ,HIPOFFSET>>
	<SSNAME <STRTOX "ANNOUN">>
	<MUNG-ANNOUNCE .N .D .SSP .ASP .MARKV>
	<SSNAME <STRTOX "MUNGQ">>
	<MUNG-Q .N .D .QSP .ASP .MARKV>
	<MUNG-LUSERS .N .D .ASP .SSP .MARKV>
	ZORK>

<DEFINE CONS-IT (FN FLEN "AUX" (CH <OPEN "PRINTB" .FN>) (FOO <IUVECTOR 1024>)
		 (FOO1 <IUVECTOR .FLEN '.FOO>))
  #DECL ((FN) STRING (CH) CHANNEL (FOO) <UVECTOR [REST <PRIMTYPE WORD>]>
	 (FOO1) <UVECTOR [REST UVECTOR]> (FLEN) FIX)
  <MAPF <>
    <FUNCTION (X) <PRINTB .X .CH>>
    .FOO1>
  <CLOSE .CH>>

"MOVE LUBLKS AND SCORES"

<DEFINE MUNG-LOSS (N D LSP SSP QSP MARKV "AUX" LOSSTABLE L1 L2 NEWID NEW) 
	#DECL ((N D) ASYLUM (LSP SSP QSP) SPACE (L1 L2 LOSSTABLE) LIST
	       (NEWID) FIX)
	<SET LOSSTABLE <SET L1 <REVERSE <DATA-AREAD .D 3 <ARESET .QSP>>>>>
	<REPEAT ()
		<SET NEW <- <SET NEWID <DATA-RESERVE .N 12>> 1>>
		<MAPR <>
		      <FUNCTION (X Y) 
			      #DECL ((X Y) <UVECTOR [REST FIX]>)
			      <PUT .X 1 <SET NEW <+ .NEW 1>>>>
		      <REST .MARKV <- <2 .L1> 1>>
		      '![0 0 0 0 0 0 0 0 0 0 0 0!]>
		<DATA-APRINT .N
			     <+ .NEWID ,SCORE>
			     .SSP
			     <DATA-AREAD .D <+ <2 .L1> ,SCORE> <ARESET .SSP>>>
		<PUT .L1 2 .NEWID>
		<COND (<EMPTY? <SET L2 <REST .L1 4>>>
		       <SET LOSSTABLE <AGC <ARESET .LSP> <REVERSE .LOSSTABLE>>>
		       <DATA-APRINT .N 3 .LSP .LOSSTABLE>
		       <RETURN .LOSSTABLE>)
		      (<SET L1 .L2>)>>>

<DEFINE MUNG-ANNOUNCE (N D SSP ASP MARKV) 
	#DECL ((N D) ASYLUM (SSP ASP) SPACE (MARKV) <UVECTOR [REST FIX]>)
	<REPEAT ((NEW ,LOMAIL) (NSTART ,LOMAIL) OLD (START ,LOMAIL) CANN)
		#DECL ((NSTART OLD NEW START) FIX (CANN) <OR FALSE VECTOR>)
		<COND (<0? <SET OLD <CHTYPE <DATA-READW .D .START> FIX>>>
		       <DATA-PRINTW .N ,HIMAIL .NEW>
		       <RETURN>)
		      (<SET CANN <DATA-AREAD .D .OLD <ARESET .SSP>>>
		       <SET NEW <1 <DATA-APRINT .N -1 .SSP .CANN>>>
		       <PUT .MARKV .OLD .NEW>
		       <DATA-PRINTW .N .NSTART .NEW>
		       <SET NSTART .NEW>
		       <SET START .OLD>)
		      (T <PUT .MARKV .OLD ,LOMAIL> <SET START .OLD>)>>>

<DEFINE MUNG-Q (N D QSP ASP MARKV "AUX" SLIST) 
	#DECL ((N D) ASYLUM (QSP ASP) SPACE (MARKV) <UVECTOR [REST FIX]>
	       (SLIST) <LIST [REST <PRIMTYPE WORD>]>)
	<REPEAT ((NSTART ,LOWQUES) CQUES (START ,LOWQUES) NEW NEW-SCORE
		 OLD-SCORE)
		#DECL ((NSTART START NEW NEW-SCORE) FIX (CQUES) VECTOR)
		<COND (<0? <SET START <CHTYPE <DATA-READW .D .START> FIX>>>
		       <DATA-PRINTW .N ,HIQLOC .NEW>
		       <RETURN>)
		      (T
		       <SET CQUES <DATA-AREAD .D .START <ARESET .QSP>>>
		       <COND (<N==? <QTYPE .CQUES> ,$TSIMPLE>
			      <SET OLD-SCORE <QSCORE .CQUES>>
			      <DATA-PRINTW .N
					   <SET NEW-SCORE <DATA-RESERVE .N 1>>
					   <DATA-READW .D .OLD-SCORE>>
			      <PUT .MARKV .OLD-SCORE .NEW-SCORE>
			      <PUT .CQUES ,QSCORE .NEW-SCORE>)>
		       <SET NEW <1 <DATA-APRINT .N -1 .QSP .CQUES>>>
		       <PUT .MARKV .START .NEW>
		       <DATA-PRINTW .N .NSTART .NEW>
		       <SET NSTART .NEW>)>>
	<SETG SIMPLE-SPACE <AFIND 1>>
	<SET SLIST <DATA-AREAD .D ,SIMPLE-LIST ,SIMPLE-SPACE>>
	<MAPR <>
	  <FUNCTION (X)  #DECL ((X) <LIST [REST <OR TIME FIX>]>)
	    <COND (<TYPE? <1 .X> TIME>
		   <PUT .X 3 <NTH .MARKV <3 .X>>>)>>
	  .SLIST>
	<DATA-APRINT .N ,SIMPLE-LIST ,SIMPLE-SPACE .SLIST>>

<DEFINE MUNG-LUSERS (N D ASP SSP MARKV "AUX" OLOSSTABLE) 
   #DECL ((N D) ASYLUM (ASP SSP) SPACE (MARKV) <UVECTOR [REST FIX]>
	  (LOSSTABLE) <LIST [REST TIME STRING FIX FIX]>)
   <SET LOSSTABLE <DATA-AREAD .D 3 <ARESET ,LOSSSPACE>>>
   <REPEAT (NINDEX CPLAYER CINDEX QASKED)
     #DECL ((CPLAYER) TIME (NINDEX CINDEX) FIX)
     <SET CPLAYER <1 .LOSSTABLE>>
     <SET CINDEX <3 .LOSSTABLE>>
     <SET NINDEX <NTH .MARKV .CINDEX>>
     <SSNAME .CPLAYER>
     <DATA-PRINTW .N
		  <+ .NINDEX ,LASTIN>
		  <DATA-READW .D <+ .CINDEX ,LASTIN>>>
     <DATA-PRINTW .ñ†7‹ðT7‹" (FN "MADMAN;TV NEW") (FLEN 300) "AUX" (D ,TVASS) N
		    (QSP ,QSPACE) (ASP ,ASPACE) (SSP ,SSPACE) (LSP ,LOSSSPACE)
		    (MOBYSPACE
		     <COND (<GASSIGNED? MOBYSPACE> ,MOBYSPACE)
			   (T <SETG MOBYSPACE <AFIND 4>>)>) DHIGH MARKV TPG)
	#DECL ((D N) ASYLUM (QSP ASP SSP LSP MOBYSPACE) SPACE (DHIGH) FIX
	       (MARKV) <UVECTOR [REST FIX]> (FN) STRING (FLEN TPG) FIX)
	<ALLOC-MAP .D>
	<CONS-IT .FN .FLEN>
	<SETG N <SET N <OPEN-DATA-FILE .FN <COND (<GASSIGNED? N> ,N)> 7 5>>>
	<SETG PEEK-PAGE </ <DATA-ALLOC .N <CHTYPE #WORD *410000000000* FIX>> 1024>>
	<AND <SET TPG <DIRMAP .N ,PEEK-PAGE>>
	     <DIR-INIT .TPG>
	     <PUT <MEMQ .TPG <5 .N>> 3 1>>
	<SET DHIGH
	     <CHTYPE <1 <GET-LOC <+ <* 1024 <ALLOCPAGE .D>> ,HIGHID> ![0!]>>
		     FIX>>
	<SET MARKV <AIUVECTOR .MOBYSPACE .DHIGH 0>>
	<DATA-RESERVE .N 27>
	<MAPR <>
ðT?õd[
õ¯ÿï _ï|õȀõƒ€õ€õ¸
õ¯ÿí _ï|õȀõƒ€õ€õ‡øõ€,6õ‡øõ¸
õ¯ÿïô¸õÀ€ûôô¸õÀ€ûõÁõƒ€,6õ¸õ¯ÿñõ¸
õ¯ÿë _ï{ô8õÁûõÀˆõƒ€õ€õ¸õ¯ÿë,6põ¸!õ‡ø#õ€,6õ‡øõ€,6õ‡ø%õ¸
õ¯ÿï _ï|."õƒ€õ€õ¸
õ¯ÿí _ï|."õƒ€õ€õ‡ø _ïz4dQ$õÁöÿÿõ`‡1õƒ€õ‹ÿÿõ‡øõ¸
õ¯ÿï _ï|ô8'õÁûõÀˆõƒ€õ€õ¸
õ¯ÿí _ï|ô8'õÁûõÀˆõƒ€õ€õ‡ø _ïz4dQ$õÁöÿÿõ`‡1õƒ€õ‹ÿÿõ‡øõ¸
õ¯ÿïõ¸
õ¯ÿïõ¸õ¯ÿïõ¸õ¯ÿïõ¯ÿõõ¯ÿõõ¯ÿïõ¯ÿïõƒ€õ¯ÿëNpõ¸
õ¯ÿïõ¸
õ¯ÿïõ¸õ¯ÿïõ¸õ¯ÿïõ¯ÿõõ¯ÿõõ¯ÿïõ¯ÿïõƒ€õ¯ÿëNpõ¸
õ¯ÿñ _ï~."õƒ€õ€õ¸õ¯ÿñõ‡øõ€,6õ‡øô¯ÿÿ DXõƒ€õ´%õ€,6,>hô¯ÿÿ Xõ‡ƒÄ‡6 x+@Dp+@Dg+h+@Dj+@DmõªƒÃÉôiô/ÿÿ HXøiõ€,6öèM-R Xö´öèMð(4'ô _ïy4dQ$õÁöÿÿõ`‡1ô‹ÿÿô„öƒ‡1Zöƒ‡1Z BX5Bhz/h@@x+hpøiõå´)/hõ¸
õ¯ÿï _ï|."õƒ€õ€õ¸õ¯ÿñõ¯ÿùõ¯ÿùõ‡ø%ô8õ‡ƒÇÙ &ö‘‡1Z÷¹´ô¸,G{ö±4%ô8!õå´+/hôƒ€'+aðÿÿÿÿÿ ð@P(ñ‘4MÏûlM«ùÑÖÌ«úqiSAôq"Ùô
Vƒù•b¢Aø5'ÍAø4ìÌ«ù¨ Ó³ù•f §úaÅAút Ëô*֋øu'ÒAût¢Ó©ô¤Ø»÷ÊPS§ùÐfÅAùµgG[ù°dÌ[ør ɝôjΏõ±éA‰ø«aȃù3%yú–hE[úè Ó³ù•f ­ø°êO¥÷ȼ¥øó'ÃAù“éÓ§úaÅAú%yú–hE[úè)ЃøqPV‹øu'Ò}ô	^Iú‘iNƒù‹iS«øTA¥ø´âÔAö/%yù3ªE¥ùÐf-¥úuaRAøjA[ø4¢Á‰ôß ™ùôéԃøS" K÷’gT‹úS Ì[úTêÂ¥ô ԃõ´¢Á‰úè>Aô¯$Ωø´§A™õ´©Õ…úH"A©ø+hR“ùÕ+ g÷ȼ¥øó'ÃAùÒgD‹û*>Aô¯)G™ùðÐTƒù3'ÒAúTAô¯$Ωø´§A™õ´©Õ…úH ҋúqj e÷ȼ“ùÕ"ҝø3Ò§ú°© ‰ø5 ­ƒú¤Î©ô
 K÷”£ÌŸøh Νø¶* ©÷×P A%DAd/P|`øYý¼¯ð¤ëð¸	BHXhPx<HuF' ÿhéEr~ xM tEfpxLpsC^\a(ÿ€åø¼ŒK©ÿãBF|w(þ¸7pTHBF|w<psð¼1ðÌ;	VhîBI)ugÿd)pBI6d8ÿØpC,n	AðèðgM
øì˜ü×p	pðˆEð,UðliBð(“	`R
h^Xiî`D!/LOð8yøw¾³hð˜ñ(CL$pap÷ÈŠñO Ήô Ó§ù1çE‰÷è#Ì«ø¯.ù•b yúj YùµgG[ù•iÅ¥úh#Ì«ø¨ÛcöͲAöl²cönY²eö(·s÷
\¶c÷. c÷3mô˜5eö®´iôÙ8i÷,Ü7möˆ±mömÙ·cö.4Aõ­9c÷˜8aö5eö´köH0kölX2k÷(²q÷
X8kön cö-Yµcö¬-cöìX±oö,[8aô
œ¶göH³eö- qöY3q÷. eö-´qömš8aôY±aöìÙ!»÷ϐ
ñ¢žS‹ú‘ÐM«ùÑÖ̓ù3Ñø2g Oðh Aðw,6Hõ¤,6Hõ¤,6Hõ¤,6Hõ¤,6Hõ¤	,6Hõ¤,6Hõ¤
,h+/ZxöèM-Rõƒ€õ´oõƒ€õ´o _ï|ô8õÁûõÀˆ _ï}ô¸õÁ€ûõÁõƒ€,6õ¯ÿÿõ¯ÿÿ B_ï}öèM-Rõ¸	õ¯ÿíõ¯ÿ÷õ¯ÿ÷õ‡ø D_ï}5Dh!õ¸	õ¯ÿëõ¯ÿûõ¯ÿûõƒ€õ´oõ‡ø
õ¸	õ¯ÿëô¸õÀ€ûô._ïzõƒ€,6õ¯ÿùõ¯ÿùõ‡ø
ô8/h8+h6õ¸	õ¯ÿíõ¯ÿ÷õ¯ÿ÷õ¸õ¯ÿëõ‡øõ€,6õ‡ø D_ï~õ¸	õ¯ÿëõƒ€õ´qõ¸õ¯ÿëõ¯ÿõõ¯ÿõõ‡øô	€õ‡ƒµÝô¯ÿý D_‡õ¸	õ¯ÿëõ¯ÿýõ¯ÿýõ¯ÿùõ¯ÿùõ‡ø
 _‡ _ï} _ï|4dQ$õÁöÿÿõ`‡1ô‹ÿÿ BX+h/h9ôƒ€'+a@ÿÿÿÿÿp8ñ‘4MãûlM«ùÑÖ̓ù3Ñø2g Gø‘aÌAõ«A™ú±Q ƒú“æ ƒúvfU›ôiٙú³PS¡ø0â §úaÅAøÒl ù6<«úÑaԟúH-ҋúuF“û_)Aô¯)G™ùðÐMø¶* ©÷ȼ©û4"­¯ôiٙú³PV‹øu'Ò}ô	^Iú‘iNƒù‹iS«øTDƒúVҋø1+ e÷ȼ“ùÕ"ҝø3Ò§ú°© ‰ø5 ­¡úRgT¯ôß K÷”£ÌŸøh&̃úuT}ô%yú–hE[úè)ЃøqPV‹øu'Ò}ô	^Iú‘iNƒù‹iS«øTA¥ø´âÔAö/%yù3ªE¥ùÐf-¥úuaRAøjA[ø4¢Á‰ôß K÷’gT‹úS Ì[úTêÂ¥ô ԃõ°hR“ùÕ4}û¨ ADAd/Pÿ„°oBF|w<þÄiBF|w(þ¸eBI-^(v]h,C,n	A/Pîpøì˜ü×p
0ðÈ;7D!/LOð0øw¾³h	(CL$pap÷ÈŠñO Ήô Ó§ù1çE‰÷è#Ì«ø¯.ù•b yúj YùµgG[ù°dÌ[ør ɝôæU‹ôm¶iôXµgöŽ7köH²göŒ›7eöÌ-cöì[¸qö̚¸aôX¶göLÛ·cöÍ [ö-ضoöN2oö(·cöî\6sö. c÷Ú°eöˆn¾}ôE
÷”âԏôjΏõ±éA‰ø«aȃù3'?,6Hõ¤,6Hõ¤,6Hõ¤,6Hõ¤,6Hõ¤	,6Hõ¤,6Hõ¤
,h+/ZxöèM-Rõƒ€,6h;õƒ€,6h; _ï|õȀ _ï}õÉõƒ€,6õ¯ÿÿõ¯ÿÿ B_ï}öèM-Rõ¸õ¯ÿíõ¯ÿ÷õ¯ÿ÷õ‡ø	 D_ï}5Dhõ¸õ¯ÿëõ¯ÿûõ¯ÿûõƒ€,6h;õ‡øõ¸õ¯ÿë _ïz."õƒ€õ€õ¯ÿùõ¯ÿùõ‡øô8
õå´wõ`4sõ¸õ¯ÿíõ¯ÿ÷õ¯ÿ÷õ¸õ¯ÿëõ‡øõ€,6õ‡øö©‡1ôˆ _ï|4fQ&.öƒÿÿõ`‡1ö©‡1ô€ @ôÿÿô D_ï~õ¸õ¯ÿëõƒ€,6h<õ¸õ¯ÿëõ¯ÿõõ¯ÿõõ‡øô	€õ‡ƒµÝô¯ÿý D_‡õ¸õ¯ÿëõ¯ÿýõ¯ÿýõ¯ÿùõ¯ÿùõ‡ø _‡ _ï} _ï|4dQ$õÁöÿÿõ`‡1ô‹ÿÿ BX+hõå´yôƒ€'+a@ÿÿÿÿÿp8DhMûlM«ùÑÖÇ¥ø1"­‡ùdÎAôq"Ùô
Vƒù•b¢Aø5'ÍAø4ìÌ«ù¨ Ó³ù•f §úaÅAút Ëô¤ØAøÒl yúµ¢Ã©ùô[¥ø´ê ù6.¾Sô	^T³úV×Aø4ìÌ«ù¨+E‡ú“é>Aô¯$Ωø´§A™õ´©Õ…úH"A©ø+iEƒø•Ð2}ô	^Iú‘iNƒù‹iS«øTDƒúVÐ¥ù3ªWAöoTAô¯*Y¡ø«k §úaÅAúÑaԟúO%yù3ªE¥ùÐf-¥úuaRAø4¢Ó‹úˆ¾Aô¯$Ωø´§A™õ´©Õ…úH"A©ø+`ҋø13}ô	^Iú‘iNƒù‹iS«øTDƒúVÁ¡úRgTAö® AðDAd/P|`;BI-^(þ×t_BF|w(prp%`BF|w<þÄGð8Oøì˜ü×p
0ð¸5ð@W(D!/LOðøw¾³h	CL$pap÷ÈŠñO Ήô Ó§ù1çE‰÷è#Ì«ø¯.ù•b yúj YùµgG[øô Ä‹õ°äA“ùÈ#Ì«ø¨Ûmöˆ±iö°oö3gön9oöìœ iö,™°kölX4AölX0Aöl™4göì\¶qô
Y4e÷ c÷Ú°eöˆn¾}ôE
÷”âԏô¢Ö‹úTâ Oðh A,6Hõ¤,h+/Zx Xöƒ‡1Zõƒ€,6õƒ€õ´#öèM-R _‡5Bh	 _ï~+höèM h X _ï~XDZ B_ï~ö±4ôXF+h FXõA+h	õå´%ôƒ€+a0ñ­O’=ûlR‹úÑiS‹ôâE‡ùˆ"­ø3*ÅEô&I§úˆ γ÷È&I§úŠn A
DAd/Pÿ„°#D!/LO
 øw¾³ð4
øì˜ü×d@ð;US)
       ASYLUM>

<DEFINE MUNG ("OPTIONALXk	~<õ¯ÿýõ¯ÿùõ¯ÿùõ‡ø _‡ _ï| BX D_ï}õ`4 _ï| _ï{4fQ&.öƒÿÿõ`‡1  ôÿÿ _ï| F_ï}õ`4/h8ôƒ€'+aPôÿÿÿÿÿ(DhLûlM«ùÑÖÁùÓê·ø¨ċøs(EúÐfU‹ôH ԟù¨ Ó³ù•f ƒúvfU›ôèA‡ø¨)ЃøqP<«úÑaԟúH-ҋúuF“û_)Aô¯*Y¡ø«k ƒúvfU›ô¢Ã©ùôŸ K÷’gT‹úS Ì[úTêÂ¥ô ԃõ´¢Á‰úè>Aô¯$Ωø´§A™õ´©Õ…úH"A©ø+hR“ùÕ+ g÷È* K÷•,ЋõµÐS¡ø0â ­ø°êO¥÷ȼ“ùÕ"ҝø3Ò§ú°© ƒúQiÅ©ô_ K÷’gT‹úS Ì[úTêÂ¥ô ԃõ°iEƒøˆ¾Aô¯$Ωø´§A™õ´©Õ…úH"A©ø+`Ð¥ù3ª i÷×P ADAd/Pÿ„°mBF|w<þÄO(BF|w(þ¸KBI-^(v]h$øì˜ü×pð`'6D!/LOðhøw¾³h`CL$pap÷ÈŠñO Ήô Ó§ù1çE‰÷è#Ì«ø¯.ù•b yúj YùµgG[ø3§O«ùÐ⠏ù•b Cûl[3q÷2mö.\9g÷ [ö-œ9kölœ0köH²sö®Y·sö¬ i÷,[4AöMœ4gö­¶Aö³cö
Ù²Cû¯Ÿ ñCE<§øµ# ›ú³£­£ô	Á Aðë,6Hõ¤,6Hõ¤,6Hõ¤,6Hõ¤,6Hõ¤	,h+/Zxõƒ€õ´ÙöèM-Rõƒ€õ´Ùõƒ€õ´Ùõƒ€õ´Ùõƒ€õ´Ùõ´Ùõ´Ùô¸õÀ€ûõƒ€õ„ô¸õÀ€ûô D_ï|öèM-Rõ¸	õ¯ÿëõ¯ÿõõ¯ÿõõ‡ø D_ï|ö±45õ¸	õ¯ÿéõƒ€,6hmõ¯ÿõõ¯ÿõõ‡ø
õå´Û+hGõ¸	õ¯ÿëõ¯ÿõõ¯ÿõõ¸õ¯ÿéõ‡øõ€,6õ‡ø D_ï{.hnö©‡1 ôˆòè4Ýö1€öõ`4I+h8 _ï{.hoö©‡1 ôˆô/ÿý J_‡õ¸	õ¯ÿéõ¸	õ¯ÿçõƒ€õ´ßõ‡øõ€,6 D_ï|õ¸	õ¯ÿçõ¯ÿ÷õ¯ÿ÷õ‡øõ€,6õ‡ø
ôƒ€ _ïyô¯ÿý _‡õ¯ÿûõ¯ÿû,6 _ï{.hpö¨ƒ‡1ô/ÿû @ _ï~ôõ¸	õ¯ÿéõƒ€õ´áõ¸õ¯ÿéõ¯ÿïõ¯ÿïõ‡øô	€õ‡ƒµÝ _ï| _ïy4fQ&.öƒÿÿõ`‡1ôÿÿ D_ï}õ¸	õ¯ÿéõ¯ÿýõ¯ÿýõ¯ÿõõ¯ÿõõ‡ø
 _ï} BXõ`4#õƒ€õ´ßõ‡øô¸õÁ€û Bôõ¸	õ¯ÿ÷õƒ€,6hqô¸õÀ€ûõ¸õ„õ‡ø DXõƒ€õ´Ùõ€,6õ´á X6 xZ4Bhe BXõƒ€õ€öèM-R Xöƒ‡1òè4ã0@õ`4Çöƒ‡1Zö‘‡1Zö‘‡1ôˆ _ï|4fQ&.öƒÿÿõ`‡1ôÿÿöƒ‡1Zöƒ‡1Zöƒ‡1ôƒ€PFô/hr@@x+hRõå´å/hsõ¸	õ¯ÿõõƒ€,6hqô¸õÀ€ûõ¸õ„õ¯ÿùõ¯ÿùõ‡øõå´Û+a` ôPðPÿÿÿÿÿð$4 ð(DhN<ûlM«ùÑÖÑAôq"Ùô
Vƒù•b¢A÷“é ø3)ÅAù°gIƒøoA§û3*ÍAø4ìÌ«ù¨)ЃøqPS¡ø0â yúµ¢Ã©ùô[¥ø´ê ù6.¾Sô	^Rù“á ™ùõèՋúh*>Aô¯*Y¡ø«k ƒúvfU›ô¢Ã©ùôŸ K÷’gT‹úS Ì[úTêÂ¥ô ԃõ´¢Á‰úè>Aô¯$Ωø´§A™õ´©Õ…úH"A©ø+hR“ùÕ+ g÷ȼ©û4"­¯ôèA‡ø¨+E‡ú“é>Aô¯$Ωø´§A™õ´©Õ…úH ҋúqj c÷ȼ“ùÕ"ҝø3Ò§ú°© ‰ø5 ­ƒúQ`ÄAöo%yù3ªE¥ùÐf-¥úuaRAøjA[úQiÅ¥úÑP2}ô	^Iú‘iNƒù‹iS«øTDƒúVÁ¡úRgTAö%yù3ªE¥ùÐf-¥úuaRAø1¤Î‰ô_ K÷”£ÌŸøh)ɛú"­§úaÅAú® Að/DAd/Pÿ„°ÙBF|w(prp?PBI-^(þ×t{BI1Z8þØ8iBF|w<ps!`6ð¯ð̵8_a C,n	Aðèð„“	XiD!/LOðð”­øw¾³h Vøì˜ü×p
0ðx/ðTcð̏	@Pð¨ÅxCL$pap÷ÈŠñO Ήô Ó§ù1çE‰÷è#Ì«ø¯.ù•b yúj YùµgG[ú(#Ì«ø¨ÛcöÍ8Aö.²möŒ™2oöH²sömØ7e÷
Z qö­š4a÷[ c÷š´iöØ4aôX¶söíY¹m÷
˜ eöضiöÍÙ cöM\6aöP-iöM1mön¶AöŒØ±oö¸iô4mö®\¸sö¬[ aôY±aöìÙ!»÷ϐ
ñ¢žS‹ú‘ÐM«ùÑÖÌ«úqiSAôàÐ Að1,6Hõ¤,6Hõ¤,6Hõ¤,6Hõ¤,6Hõ¤	,h+/ZxöèM-Rõ¸
õ¯ÿùõƒ€,6hô¸õÀ€ûõ¸õ„õ‡øõ€,6õ‡øô¸,G{õƒ€õ´%,6õ´%õƒ€õ´%õ´%õ´%öèM-Rô8õ‡ƒÇÙö‘‡1ôˆ F_ï~ô8õ‡ƒÇÙö‘‡1Zö‘‡1Zö‘‡1ôˆ F_‡ _ï|4fQ&õÁ€öƒÿÿõ`‡1ôÿÿõ¯ÿûõ¯ÿû B_ï|Bpõ¸
õ¯ÿï _ï|."õƒ€õ€õ¸
õ¯ÿí _ï|."õƒ€õ€õ‡øõ€,6õ‡øõ¸
	~Xf!5ðƒÌðùð€!u<USE "CLEAðM==3
DSKCHN==4

A=1
B=2
C=3
TIME=3
NOW=4
XUNAME=5
P=17
VBPTR:	440700,,A
VSBPTR:	140600,,B
DSKDEV:	SIXBIT	/DSK/
MSGDIR:	SIXBIT	/_MSGS_/
BADNAM:	SIXBIT	/BADBOY/
BADDIR:	SIXBIT	/VANISH/
SXUNAM:ðX½DLUE	[ASCIZ /: FATAL ERROR -- !NAME!
/]
TERMIN

; DECREMENT BYTE POINTER
DEFINE DBP AC
	ADD	AC,[70000,,]
	TLNE	AC,400000
	ADD	AC,[347777,,-1]
TERMIN

LOC	40
	0
	JSR	UUOH
	JSR	TSINT
LOC	100

	SUBTTL	VARIABLES

; CALL BLOCK FOR ECHOING
ECHOBK:	SETZ
	SIXBIT	/IOT/
	MOVSI	%TJDIS		; SO CONTROL-P WILL BE IGNORED
	MOVEI	TTYO
	SETZ	A

PDL:	BLOCK	30
INPBUF:	BLOCK	200.		; TTY INPUT BUFFER
INBLEN:	5*.-5*INPBUF		; # OF CHARACTERS ALLOWABLE
INPPTR:	440700,,INPBUF
LINMAP:	440700,,INPBUF		; BYTE POINTER TO START OF INPUT BUFFER
	BLOCK	197.		; LINE MAP UNLESS OVERFLOWS
MAPLEN:	1+LINMAP-.,,LINMAP	; AOBJN POINTER TO LINE MAP STORAGE

DBUF:	BLOCK	200.		; BUFFER FOR COPYING FILES TO TTY
DBUFLN==.-DBUF
DBUFPT:	440700,,DBUF		; BYTE POINTER TO FILE BUFFER
PDLPTR:	-30,,PDL-1		; INITIAL PDL POINTER
JCL:	BLOCK	20.		; FOR JCL
PATCH:	BLOCK	30.		; PATCH SPACE

HEADER:	ASCIZ	/Please describe your bug as completely as possible.
Terminate with <altmode>.  ? will print more information./
PRMPT:	ASCIZ	/Message:  /

GCSTOP:	MUMBLE			; USED BY CORE ALLOCATOR
FRETOP:	0
AGCNUM:	0
PDLNUM:	0			; # OF TIMES AGC AND PREV OVERFLOW OCCURRED
ALLOW:	-1			; IF -1, TRIVIA IS NOT ALREADY DOWN
MAINT:	0			; IF XUNAME IS MARC OR TAA
JCLMOD:	0			; -1 IF INPUT IS FROM JCL LINE INSTEAD OF TTY
JCLPTR:	0			; CONTAINS ILDB POINTER TO JCL IF NEEDED
XUNAME:	0
INTALL:	0			; IF -1, CTRL-S WORKS
QMODE:	0			; CTRL-Q TYPED
TTYOPT:	0
OPTION:	0			; FROM SUSET
LSTERR:	0
LETRUB:	0			; IF -1, %TOERS IS ON FOR THIS TTY
XCTRUB:	0			; PUSHJ XCT'ED TO DO RUBOUTS
DSKIOT:	.IOT	DSKO,A
DSKUPA:	.IOT	DSKO,["^]
TTYIOT:	.IOT	TTYO,A
TTYX%zHUPA:	.IOT	TTYO,["^]
CLIIOT:	.IOT	CLIO,A
CLIUPA:	.IOT	CLIO,["^]
XCTIOT:	0			; XCT'ED BY UUO'S
XCTUPA:	0
UUOD:	0
UUOE:	0
BASE:	0
HPOS:	0
CTRLJ:	0			; PRINT ^M^J FOR CRLF INSTEAD OF JUST ^M
SUSET:	.SIMASK,,[%PIPDL]	;  HANDLE PDL OVERFLOW (FOR LINE MAP)
	.RXUNAME,,A		; XUNAME
	.RMEMT,,FRETOP		; HIGH ADDRESS
	.SIMSK2,,[1_TTYI]	; INTERRUPTS FROM TTY
	.ROPTIO,,OPTION		; OPTION WORD (TO SEE IF HAVE JCL)
	.RXJNAME,,C		; XJNAME:  TVBUG OR TVUP (AKA FROB)
SUSETS:	SUSET-.,,SUSET
VERSIO:	.FNAM2
	


START:	MOVE	P,PDLPTR
	PUSHJ	P,TTYOPN
	MOVE	O,TTYIOT	; SET UP OUTPUT INSTRUCTIONS FOR UUO'S
	MOVEM	O,XCTIOT
	MOVE	O,TTYUPA
	MOVEM	O,XCTUPA
	SETZM	JCLMOD
	SETOM	ALLOW
	MOVE	B,SUSETS
	.SUSET	B
	MOVEM	A,XUNAME
	CAME	A,[SIXBIT /MARC/]	; FOR SPECIAL HACKS
	 CAMN	A,[SIXBIT /TAA/]
	  JRST	[SETOM	MAINT
		 CAMN	C,[SIXBIT /FROB/]
		  JRST	TVUP		; DELETE DEATH FILES
		 PUSHJ	P,JCLRED
		  JRST	STCONT
		 JRST	KILL]
	PUSHJ	P,NJCL			; JCL FOR NORMAL PEOPLE
	 JRST	STCONT
	JRST	STATUS


TVUP:	.CALL	[SETZ
		 SIXBIT	/DELETE/
		 [SIXBIT /DSK/]
		 [SIXBIT /TRIVIA/]
		 [SIXBIT /DEATH/]
		 SETZ	[SIXBIT /_MSGS_/]]
	 JFCL
	.CALL	[SETZ
		 SIXBIT	/DELETE/
		 [SIXBIT /DSK/]
		 [SIXBIT /TRIVIA/]
		 [SIXBIT /CURFEW/]
		 SETZ	[SIXBIT /_MSGS_/]]
	 JFCL
	.CALL	[SETZ
		 SIXBIT	/DELETE/
		 [SIXBIT /DSK/]
		 [SIXBIT /TRIVIA/]
		 [SIXBIT /LOSES/]
		 SETZ	[SIXBIT /_MSGS_/]]
	 .BREAK	16,160000
	.BREAK	16,160000

STCONT:	OASC	[ASCIZ	/TVBUG./]
	OSIX	VERSIO
	OASCR	[0]
STATUS:	.CALL	[SETZ		; SEE IF TRIVIA DOWN
		 SIXBIT /OPEN/
		 [.BII,,DSKI]
		 [SIXBIT /DSK/]
		 [SIXBIT /TRIVIA/]
		 [SIXBIT /DEATH/]
		 SETZ [SIXBIT /_MSGS_/]]	; IS IT ALREADY DOWN?
	 JRST	PHEAD
	.CLOSE	DSKI,
	SETZM	ALLOW		; IF SO, TURKEY CAN'T BRING IT DOWN
PHEAD:	SKIPN	JCLMOD		; DON'T PRINT HEADER IF READING FROM JCL
	 OASCR	HEADER

; READER
READ:	SETZ	CCT,		; INITIALIZE CHARACTER COUNT
	MOVE	BUFPTR,INPPTR	; INITIALIZE BYTE POINTER TO INPUT BUFFER
	SETZB	CCHARS,CHPOS
	MOVE	PREV,MAPLEN
	ADD	PREV,[MAPSIZ-1,,MAPSIZ-1]
PPRMPT:	SKIPN	JCLMOD
	 OASCR	PRMPT		; PRINT PROMPT
GETCHR:	SKIPE	JCLMOD
	 JRST	[ILDB	A,JCLPTR	; READ FROM JCL
		 JRST	PROCHR]
	.IOT	TTYI,A		; GET CHAR IN A
PROCHR:	SKIPE	QMODE		; QUOTE THIS CHARACTER
	 JRST	QHACK
	CAIGE	A,34
	 JRST	@CHNDTB(A)
	CAIN	A,177		; RUBOUT
	 JRST	DORUB
	CAIN	A,"?		; MUST BE FIRST CHARACTER TO BE SPECIAL
	 JRST	DOHELP
DOECHO:	ECHO
DEPCHR:	SETZM	QMODE
DEPCH1:	PUSHJ	P,GETSIZ	; # OF POSITIONS OCCUPIED BY CHARACTER
	ADD	CHPOS,B		; CURRENT HPOS
	ADDI	CCHARS,1	; # OF CHARACTERS ON CURRENT LINE
	ADDI	CCT,1		; TOTAL # OF CHARACTERS IN BUFFER
	CAML	CCT,INBLEN	; NUMBER OF SPACES IN INPUT BUFFER
	 PUSHJ	P,AGC		; GROW THE INPUT BUFFER
	IDPB	A,BUFPTR
	JRST	GETCHR

; DISPATCH TABLE FOR HANDLING OF CONTROL CHARACTERS (0-33)
CHNDTB:	CLRBUF			; CTRL-@:  CLEAR BUFFER
	DOECHO
	DOECHO
	CTRLC			; CTRL-C--TERMINATES JCL
	PRTBUF			; CTRL-D
	DOECHO
	DOECHO
	DIE			; CTRL-G
	DOECHO
	DOECHO
	DOECHO			; CTRL-J
	DOECHO
	CLRSCR			; CTRL-L
	CRLFHK			; CTRL-M
	DOECHO
	DOECHO
	DOECHO			; CTRL-P
	QSETUP			; CTRL-Q
	DOECHO
	CLRBUF			; CTRL-S
	DOECHO
	DOECHO
	DOECHO
	WDKILL			; CTRL-W
	LNKILL			; CTRL-X
	DOECHO
	DOECHO
	PTMAIL			; ALTMODE


SUBTTL	SPECIAL READER ROUTINES

; HANDLE CARRIAGE RETURN	
CRLFHK:	SKIPE	JCLMOD		; CARRIAGE RETURN TERMINATES
	 JRST	PTMAIL
	ECHO
	ADDI	CCT,1
	CAML	CCT,INBLEN
	 PUSHJ	P,AGC
	IDPB	A,BUFPTR
	PUSH	PREV,BUFPTR		; SAVE THIS LINE--LOSS HANDLED AS PDL OVERFLOW
	PUSH	PREV,CHPOS
	PUSH	PREV,CCHARS
	SETZB	CCHARS,CHPOS
CRLDON:	MOVEI	A,^J		; PUT ^J IN BUFFER
	JRST	DEPCHR

; CTRL-Q TYPED
QSETUP:	SETOM	QMODE
	ECHO
	JRST	GETCHR

CTRLC:	SKIPE	JCLMOD
	 JRST	PTMAIL		; TERMINATE IF IN JCL
	JRST	DOECHO		; OTHERWISE TREAT NORMALLY

; QUOTE A CHARACTER
QHACK:	SKIPE	LETRUB		; ERASE CTRL-Q
	 JRST	[OCTLP "X
		 OCTLP "X
		 JRST .+1]
	CAIN	A,^M		; CAN'T QUOTE CARRIAGE RETURN
	 JRST	CRLFHK
	JRST	DOECHO

; CLEAR SCREEN AND REDISPLAY BUFFER
CLRSCR:	OCTLP	"C		; FOR CTRL-L
	JRST	RREP

; REDISPLAY BUFFER
PRTBUF:	ECHO			; FOR CTRL-D
	OASCR	[0]
RREP:	OASCR	PRMPT
	PUSHJ	P,BUFPRT
	JRST	GETCHR

BUFPRT:	PUSH	P,A		; PRINT CONTENTS OF INPUT BUFFER
	PUSH	P,B
	MOVE	A,INPPTR	; POINTER TO BEGINNING OF INPUT
	MOVE	B,CCT		; # OF CHARACTERS
	.CALL	[SETZ
		 SIXBIT /SIOT/
		 MOVSI	%TJDIS	; SO CTRL-P IS IGNORED
		 MOVEI	TTYO
		 A
		 SETZ	B]
	 .LOSE	1000
	POP	P,B
	POP	P,A
	POPJ	P,

; START OVER ON INPUT
CLRBUF:	ECHO
	OASCR	[0]		; FOR CTRL-@ AND CTRL-S
	JRST	READ

; IF ? IS FIRST CHARACTER, PRINT INSTRUCTIONS
DOHELP:	JUMPN	CCT,DOECHO
	OASCR	HLPMSG
	JRST	PPRMPT

HLPMSG:	ASCIZ	/Useful characters:
  ?:       Prints this, if nothing is in the buffer
  ctrl-@:  Clears buffer
  ctrl-D:  Redisplays buffer
  ctrl-G:  Kills the program
  ctrl-L:  Clears screen and redisplays buffer
  ctrl-Q:  Quotes next character
  ctrl-S:  Stops typeout when printing file
  ctrl-W:  Deletes last word in buffer
  ctrl-X:  Deletes last line in buffer
  altmode: Terminates message
  rubout:  Deletes last character in buffer
/
zBZzL

	SUBTTL	RUBOUT HANDLERS

; COME HERE FOR RUBOUTS
DORUB:	PUSHJ	P,RUBBER
	 JRST	READ		; IF NOTHING TO RUBOUT
	JRST	GETCHR

; COMMON CODE FOR RUBOUTS
RUBBER:	SOJL	CCT,CPOPJ
	PUSH	P,A
	LDB	A,BUFPTR	; VICTIM
	SUBI	CCHARS,1
	DBP	BUFPTR		; UPDATE BYTE POINTER TO INPUT
	XCT	XCTRUB		; TO RUBECH OR RUBFLS, DEPENDING ON %TOERS
	POP	P,A
POPJ1:	AOS	(P)		; SKIP RETURN IF SOMETHING WAS RUBBED OUT
CPOPJ:	POPJ	P,

; RUBOUT CODE FOR PRINTING TERMINALS--CRETINOUS
RUBECH:	CAIN	A,177		; ECHO A RUBOUT
	 JRST	[OASC	[ASCIZ /^?/]
		 POPJ	P,]
	CAIN	A,^J
	 JRST	RECHLF
RUBEC1:	OASCI	(A)		; ECHO THE CHARACTER RUBBED OUT
	POPJ	P,

; RUBOUT A LF
RECHLF:	LDB	A,BUFPTR
	CAIN	A,^M
	 JRST	RECHCR
	MOVEI	A,^J
	.IOT	TTYO,A
	POPJ	P,

; RUBOUT A CR
RECHCR:	DBP	BUFPTR
	SUBI	CCT,1
	POP	PREV,CCHARS
	POP	PREV,CHPOS
	SUB	PREV,[1,,1]
	OASCR	[0]
	POPJ	P,


; RUBOUT CODE FOR DISPLAYS
RUBFLS:	CAIN	A,177		; RUBOUT MAY BE TWO POSITIONS
	 JRST	TSTSAI
	CAIL	A,40		; SPACE (AND ABOVE?) ALWAYS ONE POSITION
	 JRST	RUBONE
	CAIN	A,^I		; TABS REQUIRE SPECIAL HANDLING
	 JRST	RUBTAB
	CAIN	A,^J		; MAY INDICATE CRLF
	 JRST	RUBLF
	CAIN	A,^H		; BECAUSE AOS HORIZONTAL POSITION
	 JRST	RUBBCK
	CAIN	A,^G		; SINCE DOESN'T DISPLAY
	 POPJ	P,
TSTSAI:	MOVE	O,TTYOPT
	TLNE	O,%TOSAI
	 JRST	RUBONE
	CAIN	A,177		; RUBOUT TAKES TWO POSITIONS
	 JRST	RUBTWO
	CAIN	A,33		; ALTMODE TAKES ONE POSITION
	 JRST	RUBONE
RUBTWO:	OCTLP	"X		; DO THE RUBOUT(S)
	SUBI	CHPOS,1
RUBONE:	OCTLP	"X
	SUBI	CHPOS,1
	POPJ	P,

; SPECIAL ROUTINES FOR RUBBING OUT RANDOMNESS

; RUBOUT BACKSPACE
RUBBCK:	ADDI	CHPOS,1
	LDB	O,BUFPTR	; ECHO CHARACTER BEFORE BACKSPACE
	.IOT	TTYO,O
	POPJ	P,

; RUBOUT TAB
RUBTAB:	PUSH	P,B
	PUSH	P,C
	PUSH	P,E
	SETZ	CHPOS,		; ACCUMULATE HORIZONTAL POSITION IN CHPOS
	JUMPE	CCHARS,RTABOT	; IF TAB WAS FIRST ON LINE
	MOVE	C,BUF(PREV)	; GET BEGINNING OF THIS LINE
	MOVE	E,CCHARS	; # OF CHARACTERS ON THIS LINE
RTABLP:	ILDB	A,C
	PUSHJ	P,GETSIZ	; SIZE OF CHARACTER
	ADD	CHPOS,B
	SOJG	E,RTABLP
RTABOT:	OCTLP	"H		; ^PH FOLLOWED BY HPOS+8
	MOVEI	O,8(CHPOS)	; FOR ABSOLUTE POSITION
	.IOT	TTYO,O
	POP	P,E
	POP	P,C
	POP	P,B
	POPJ	P,

; RUBOUT LINEFEED:  EITHER LINESTARVE OR FLUSH CRLF
RUBLF:	LDB	A,BUFPTR
	CAIN	A,^M		; IS BUFFER ^M^J
	 JRST	RUBCRL
	OCTLP	"U		; DO LINE STARVE
	POPJ	P,

; RUBOUT CRLF
RUBCRL:	DBP	BUFPTR		; GET RID OF ^M
	SUBI	CCT,1
	POP	PREV,CCHARS	; GET DATA FOR PREVIOUS LINE
	POP	PREV,CHPOS
	SUB	PREV,[1,,1]
	OCTLP	"U		;  GO TO PREVIOUS LINE
	OCTLP	"H		; GO TO END
	MOVEI	A,8(CHPOS)
	.IOT	TTYO,A
	POPJ	P,

; HANDLE CTRL-X:  KILL THIS LINE
LNKILL:	MOVE	BUFPTR,BUF(PREV)
	MOVE	O,PREV
	SUB	O,[MAPSIZ-1,,MAPSIZ-1]
	CAME	O,MAPLEN		; FIRST LINE
	 JRST	LNNORM
	SETZB	CCT,CCHARS		; SO CLEAR EVERYTHING
	SETZ	CHPOS,
	JRST	LNMUNG
LNNORM:	IBP	BUFPTR			; GET PAST CTRL-J
	SUBI	CCT,-1(CCHARS)		; UPDATE CCT
	SETZ	CHPOS,			; UPDATE CURRENT LINE
	MOVEI	CCHARS,1		; BECAUSE CTRL-J IS ON LINE
LNMUNG:	SKIPN	LETRUB			; IF CAN'T DO %TOERS, JUST ECHO CRLF
	 JRST	[OASCR	[ASCIZ / XXX?/]
		 JRST	GETCHR]
	OCTLP	"H			; GO TO BEGINNING OF LINE
	.IOT	TTYO,[8]
	OCTLP	"L			; AND KILL TO END
	JRST	GETCHR

; HANDLE CTRL-W--KILL WORD
WDKILL:	PUSH	P,A
WLOP1:	JUMPE	CCT,WLEAVE		; FLUSH INVISIBLE CHARACTERS
	LDB	A,BUFPTR
	CAIE	A,^I
	 CAIN	A,^J
	  JRST	WRUB
	CAIE	A,40
	 CAIN	A,^H
	  JRST	WRUB
	JRST	WLOP2
WRUB:	PUSHJ	P,RUBBER
	 JRST	WLEAVE
	JRST	WLOP1
WLOP2:	JUMPE	CCT,WLEAVE		; THEN FLUSH TO INVISIBLE CHARACTER
	PUSHJ	P,RUBBER
	 JRST	WLEAVE
	LDB	A,BUFPTR
	CAIE	A,^I
	 CAIN	A,^J
	  JRST	WLEAVE
	CAIN	A,40
	 JRST	WLEAVE
	JRST	WLOP2
WLEAVE:	POP	P,A
	JRST	GETCHR

; GET SIZE OF CHARACTER.  CHAR IN A, SIZE RETURNED IN B.
GETSIZ:	CAIGE	A,40
	 JRST	GETSZ1
	CAIN	A,177
	 JRST	[MOVEI	B,2
		 MOVE	O,TTYOPT
		 TLNE	B,%TOSAI
		  MOVEI	B,1
		 POPJ	P,]
	MOVEI	B,1
	POPJ	P,
GETSZ1:	MOVE	B,TTYOPT
	TLNE	B,%TOSAI	; OF %TOSAI, SIZE IS ONE
	 JRST	[MOVEI B,1
		 POPJ P,]
	PUSH	P,C
	PUSH	P,A
	MOVE	C,[000300,,CHRTAB(A)]	; GET DIGIT FROM TABLE
	IDIVI	A,14
	IMULI	B,-3
	ADDI	B,33.
	DPB	B,[360600,,C]
	LDB	B,C
	CAIG	B,4			; > 4==>CODE TO FIND SIZE
	 JRST	GETLEV
	JRST	@SPCHR-5(B)
GETLEV:	POP	P,A
GETLV1:	POP	P,C
	POPJ	P,

; TABLE OF CHARACTER SIZES
CHRTAB:	222222205602
	202222222222
	224122240000

; DISPATCH TABLE FOR SPECIAL SIZES
SPCHR:	CTHSIZ
	CTISIZ

; BACKSPACE IS -1
CTHSIZ:	SETO	B,
	JRST	GETLEV

; TAB GOES TO NEXT MULTIPLE OF 8
CTISIZ:	MOVE	C,CHPOS
	ANDI	C,7
	MOVNS	C
	MOVEI	B,10(C)
	JRST	GETLEV



; FINISH
PTMAIL:	ECHO				; ECHO THE ALTMODE
PTMAL1:	SETOM	INTALL			; COME HERE FROM PTMAIL ROUTINES
	SKIPN	ALLOW
	 JRST	PRINTR
	OASC	[ASCIZ	/
Should TRIVIA be brought down? (y,n,?,a,):  /]
	.IOT	TTYI,A			; READ COMMAND
	ECHO
	CAIE	A,"?			; PRINT HELP MESSAGE
	 CAIN	A,^F
	  JRST	PRTCOM
	CAIN	A,^R			; PRINT MADMAN;TVLOSE >
	 JRST	PRTFIL
	CAIN	A,^L
	 JRST	[SKIPE	LETRUB
		 OCTLP	"C
		 JRST	PTMAL1]
	CAIE	A,"N			; NOT BROUGHT DOWN
	 CAIN	A,"n
	  JRST	PRINTR
	CAIE	A,"F
	 CAIN	A,"f
	  JRST	PRINTR
	CAIE	A,"Y			; BROUGHT DOWN
	 CAIN	A,"y
	  JRST	KILL
	zDzPCAIE	A,"T
	 CAIN	A,"t
	  JRST	KILL
	CAIE	A,"A			; APPEND TO MESSAGE
	 CAIN	A,"a
	  JRST	APPEND
	JRST	PTMAL1

PRTCOM:	OASCR	[ASCIZ	/
?  prints this
A  allows you to modify your bug description
Y  brings TRIVIA down.  If you are not sure whether this should be done,
   read MADMAN;TVLOSE >.  Type ctrl-R to have the file printed.
N  sends bug mail, but does not bring TRIVIA down./]
	JRST	PTMAL1

; PRINT MADMAN;TVLOSE >
PRTFIL:	OASCR	[0]
	.CALL	[SETZ
		 SIXBIT	/OPEN/
		 [.BII,,DSKI]
		 [SIXBIT /DSK/]
		 [SIXBIT /TVLOSE/]
		 [SIXBIT />/]
		 SETZ	[SIXBIT /MADMAN/]]
	 .LOSE	1000
	.CALL	[SETZ
		 SIXBIT	/FILLEN/
		 MOVEI	DSKI
		 SETZM	C]
	 .LOSE	1000
	IDIVI	C,DBUFLN		; # OF ITERATIONS NEEDED
	JUMPE	D,PFLOOP
	ADDI	C,1
PFLOOP:	MOVE	A,[-DBUFLN,,DBUF]
	.IOT	DSKI,A			; IOT IN FIRST PART
	SOJE	C,CTCHAK
	MOVEI	O,5*DBUFLN
DOSIOT:	MOVE	B,DBUFPT
	.CALL	[SETZ			; PRINT IT TO TTY
		 SIXBIT	/SIOT/
		 MOVSI	%TJDIS
		 MOVEI	TTYO
		 B
		 SETZ	O]
	 .LOSE	1000
	JUMPN	C,PFLOOP
	JRST	PTMAL1
CTCHAK:	HLRE	B,A
	MOVEI	O,DBUFLN
	ADD	O,B
	IMULI	O,5
	MOVEI	D,5
	SUBI	A,1
	HRLI	A,010700
CTCLOP:	LDB	B,A
	CAIE	B,^C
	 CAIN	B,0
	  CAIA
	JRST	DOSIOT
	DBP	A
	SUBI	O,1
	SOJG	D,CTCLOP
	JRST	DOSIOT
		 
APPEND:	OASC	[ASCIZ	/
Append to message:/]
	LDB	O,BUFPTR		; IF ALREADY CRLF, DON'T ADD ONE
	CAIN	O,^J
	 JRST	[OASCR	[0]
		 JRST	GETCHR]
	MOVEI	A,^M
	SETZM	INTALL			; DON'T ALLOW INTERRUPTS
	SETZM	JCLMOD			; NOT IN JCL MODE
	JRST	CRLFHK

; PRINT FILE AND DON'T KILL TRIVIA
PRINTR:	PUSHJ	P,PRINT
	.CLOSE	DSKO,
DIE:	.BREAK	16,160000

; PRINT FILE--TO PRINT1 IF CHANNEL ALREADY OPEN
PRINT:	.CALL	[SETZ
		 SIXBIT	/OPEN/
		 [1,,DSKO]
		 [SIXBIT /DSK/]
		 [SIXBIT /TVLOSS/]
		 [SIXBIT />/]
		 SETZ [SIXBIT /TAA/]]
	 .LOSE	1000
PRINT1:	MOVE	O,DSKIOT		; SET UP FOR UUO'
	MOVEM	O,XCTIOT
	MOVE	O,DSKUPA
	MOVEM	O,XCTUPA
	MOVEI	C,DSKO			; CHANNEL
PRINT2:	SETOM	CTRLJ			; PUSHJ TO HERE TO PRINT ON CLI DEVICE
	OSIX	XUNAME			; THE CULPRIT
	OASCI	^I
	PUSHJ	P,PDSKDA		; TIME OF LOSSAGE
	OASC	[ASCIZ	/
/]
	MOVE	A,INPPTR
	MOVE	B,CCT
	.CALL	[SETZ			; PRINT MESSAGE
		 SIXBIT /SIOT/
		 C
		 A
		 SETZ	B]
	 .LOSE	1000
	MOVE	O,TTYIOT
	MOVEM	O,XCTIOT
	SETZM	CTRLJ
	SKIPN	MAINT
	 JRST	[OASCR	[ASCIZ	/
Thank you for your help./]
		 PUSHJ	P,CLIOUT
		 POPJ	P,]		; LEAVES CHANNEL OPEN
	POPJ	P,

; KILL TRIVIA BEFORE PRINTING MESSAGE
KILL:	PUSHJ	P,MSGBLS		; MUST BE AT LEAST 10. VISIBLE CHARACTERS
	 .BREAK	16,160000
	.CALL	[SETZ
		 SIXBIT	/OPEN/
		 [1,,DSKO]
		 [SIXBIT /DSK/]
		 [SIXBIT /TRIVIA/]
		 [SIXBIT /DEATH/]
		 SETZ	[SIXBIT /_MSGS_/]]
	 .LOSE	1000
	MOVE	O,XUNAME
	SKIPE	MAINT
	 JRST	[PUSHJ	P,PRINT1
		 JRST	KILFIN]
	.CLOSE	DSKO,
	PUSHJ	P,PRINT
	SETOM	CTRLJ
	MOVE	O,DSKIOT
	MOVEM	O,XCTIOT
	OASC	[ASCIZ	/
TRIVIA brought down./]
KILFIN:	.CLOSE	DSKO,
	.BREAK	16,160000

; SKIP RETURNS IF > 10 VISIBLE CHARACTERS
MSGBLS:	PUSH	P,A
	PUSH	P,B
	PUSH	P,C
	MOVEI	C,10.
	MOVE	A,INPPTR
	MOVE	B,CCT
BLSLOP:	ILDB	O,A
	CAILE	O,33		; VISIBLE?
	 CAIN	O,40
	  JRST	BLSEND
	SOJE	B,BLSOUT	; IF JUMPS, RAN OUT OF CHARACTERS BEFORE 10 VISIBLE
	SOJG	C,BLSLOP
	AOS	-3(P)		; FOUND 10, SO SKIP RETURN
	JRST	BLSOUT
BLSEND:	SOJG	B,BLSLOP
BLSOUT:	POP	P,C
	POP	P,B
	POP	P,A
	POPJ	P,

; FWEEP TAA HACTRN IF ON-LINE
CLIOUT:	MOVE	O,[SIXBIT /TAA/]
	.CALL	CLIOPE
	 JRST	[MOVE	O,[SIXBIT /MARC/]
		 .CALL	CLIOPE
		  POPJ	P,
		 JRST	.+1]
	MOVE	O,CLIIOT
	MOVEM	O,XCTIOT
	MOVE	O,CLIUPA
	MOVEM	O,XCTUPA
	MOVEI	C,CLIO
	SETOM	MAINT
	PUSHJ	P,PRINT2		; RESTORES XCTIOT &XCTUPA BEFORE FROBBING
	SETZM	MAINT
	.CLOSE	CLIO,
	POPJ	P,

CLIOPE:	SETZ
	SIXBIT	/OPEN/
	[A,,CLIO]
	[SIXBIT /CLI/]
	O
	SETZ	[SIXBIT /HACTRN/]


;START-UP
TTYOPN:	.CALL	[SETZ
		 SIXBIT "OPEN"
		 [TTYI]
		 [SIXBIT "TTY"]
		 [SIXBIT "DIRED"]
		 [SIXBIT "INTTY"]
		 SETZB LSTERR]
	 .LOSE	1000
	.CALL	[SETZ
		 SIXBIT "OPEN"
		 [4001,,TTYO]	; display mode == %TIDIS
		 [SIXBIT "TTY"]
		 [SIXBIT "DIRED"]
		 [SIXBIT "OUTTTY"]
		 SETZB LSTERR]
	 .LOSE	1000
	.CALL	[SETZ
		 'CNSGET
		 [TTYO]
		 MOVEM ; vsize
		 MOVEM ; hsize
		 MOVEM ; tctyp
		 MOVEM ; ttycom
		 MOVEM TTYOPT
		 SETZB LSTERR]
	 .LOSE	1000
	.CALL	TTYSET	    	; SET UP TTY TO TAKE CONTROL CHARACTERS
	 .LOSE	1000
	MOVE	A,TTYOPT	; SET UP RUBOUT HANDLERS
	MOVE	[PUSHJ P,RUBECH]
	TLNE	A,%TOERS
	 JRST	[SETOM	LETRUB
		 MOVE	[PUSHJ P,RUBFLS]
		 JRST	.+1]
	MOVEM	XCTRUB
	POPJ 	P,
	
; SET UP TTY SO EVERYTHING ACTIVATES, ^G AND ^S INTERRUPT
TTYSET:	SETZ
	SIXBIT /TTYSET/
	1000,,TTYI
	[020202,,020202]
	SETZ [030202,,020202]

; FUNNY JCL HACKER.  ONLY USED IF MAINT SET--OTHERS GET NJCL

JCLRED:	MOVE	A,OPTION
	TLNN	A,OPTCMD
	 POPJ	P,			; NO JCL
	.BREAK	12,[5,,JCL]
	MOVE	B,[440700,,JCL]
	ILDB	A,B			; GET FIRST CHARACTER
	CAIN	A,"'			; ' MEANS THIS IS THE MESSAGE
	 JRST	JCLMSG
	SUBI	A,"0
	MOVE	B,CANNED(A)
	HRLI	B,440700		; POINTER TO CANNED MESSAGE INSTEAD
JCLMSG:	MOVEM	B,INPPTR		; FOR THE BENEFIT OF THE FILE PRINTER
	SETZM	CCT
JCLOOP:	ILDB	A,B
	JUMPE	A,POPJ1
	CAIN	A,^M
	 JRST	POPJ1
	AOJA	CCT,JCLOOP

; CANNED MESSAGzHzTES
CANNED:	[ASCIZ	/TRIVIA down for data-base maintenance.  Back very shortly./]
	[ASCIZ	/TRIVIA down due to data-base lossage.  Have patience./]

; JCL HACKER FOR NORMAL PEOPLE:  PRETENDS TO BE READING FROM THE TTY
NJCL:	MOVE	A,OPTION
	TLNN	A,OPTCMD
	 POPJ	P,
	.BREAK	12,[5,,JCL]
	SETOM	JCLMOD
	MOVE	A,[440700,,JCL]
	MOVEM	A,JCLPTR
	AOS	(P)
	POPJ	P,

SUBTTL	CORE ALLOCATOR
; IBLOCK:  TAKES #WORDS IN A, RETURNS POINTER IN A

IBLOCK:	ADD	A,GCSTOP		; FIND NEW GCSTOP
	CAML	A,FRETOP		; GREATER THAN FRETOP?
	 JRST	MORCOR			; YES
	EXCH	A,GCSTOP		; OLD GCSTOP IS POINTER TO CORE ALLOCATED
	POPJ	P,

; IF REQUEST BIGGER THAN AVAILABLE CORE, GET PAGE(S)
MORCOR:	PUSH	P,B
	PUSH	P,A			; SAVE GCSTOP
	SUB	A,FRETOP		; # OF NEW WORDS
	ADDI	A,2000
	IDIVI	A,2000			; # OF PAGES IS IN A
	PUSH	P,A			; SAVE AWAY
	MOVNS	A
	MOVE	B,FRETOP		; FIND NEW PAGE NUMBER
	LSH	B,-12
	HRL	B,A			; AOBJN POINTER IN B
%GETIP:	.CALL	[SETZ			; FOR HYSTERICAL REASONS
		 SIXBIT /CORBLK/
		 MOVEI	120000
		 [-1]
		 B
		 SETZI	%JSNEW]
	 FATINS	NO CORE AVAILABLE TO SATISFY REQUEST
	POP	P,A			; RECOVER # OF PAGES
	IMULI	A,2000			; ADJUSTMENT TO FRETOP
	ADDM	A,FRETOP		; UPDATE FRETOP
	POP	P,A			; RESTORE AC'S
	POP	P,B
	EXCH	A,GCSTOP		; A NOW HAS POINTER TO CORE, GCSTOP UPDATED
	POPJ	P,

SUBTTL	INPUT BUFFER EXPANSION

AGC:	PUSH	P,A
	PUSH	P,B
	PUSH	P,C
	AOS	AGCNUM
	MOVEI	A,500.(CCT)		; SIZE OF NEW BUFFER--500. MORE CHARS
	MOVEM	A,INBLEN
	IDIVI	A,5
	PUSH	P,A
	PUSHJ	P,IBLOCK		; GET NEW BUFFER IN A
	MOVE	B,INPPTR
	HRLI	B,(B)			; ADDRESS OF FIRST WORD OF OLD BUFFER
	HRR	B,A
	POP	P,C
	ADDI	C,-100(A)		; END OF NEW BUFFER
	BLT	B,(C)			; MOVE IT OVER
	MOVE	B,INPPTR
	SUBI	A,(B)			; AMOUNT TO CHANGE ADDRESSES BY
	ADDM	A,INPPTR		; UPDATE INPPTR
	ADDM	A,BUFPTR		; UPDATE CURRENT BUFFER POINTER
	MOVE	B,MAPLEN
	ADD	B,[MAPSIZ-1,,MAPSIZ-1]
AGCLOP:	ADDM	A,BUF(B)		; UPDATE SAVED BUFFER POINTER
	CAMN	B,PREV
	 JRST	AGCWIN
	ADD	B,[MAPSIZ,,MAPSIZ]
	JRST	AGCLOP
AGCWIN:	POP	P,C
	POP	P,B
	POP	P,A
	POPJ	P,
	

SUBTTL	UUOS

; TYPEOUT UUOS (STRAIGHT FROM DIRED, WITH SOME HELP FROM PDL)

UUOCT==0
UUOTAB:	JRST	ILUUO
	IRPS	X,,[ODEC OBPTR OHPOS OCTLP OALIGN OSIX OASC OASCI OASCR OSIXS]
	UUOCT==UUOCT+1
	X=UUOCT_33
	JRST	U!X
	TERMIN

UUOMAX==.-UUOTAB

UUOH:	0
	PUSH	P,A
	PUSH	P,B
	PUSH	P,C
	PUSH	P,D
	MOVEI	@40			; GET EFF ADDR. OF UUO
	MOVEM	UUOE
	MOVE	@0
	MOVEM	UUOD			; CONTENTS OF EFF ADR
	MOVE	B,UUOE			; EFF ADR
	LDB	A,[270400,,40]		; GET UUO AC,
	LDB	C,[330600,,40]		; OP CODE
	CAIL	C,UUOMAX
	MOVEI	C,0	; GRT=>ILLEGAL
	JRST	@UUOTAB(C)	; GO TO PROPER ROUT

UUORET: POP	P,D
	POP	P,C
	POP	P,B
	POP	P,A		; RESTORE AC'S
	JRST	2,@UUOH

ILUUO:	FATINS	ILLEGAL UUO
UOBPTR:	MOVEI	C,0
	MOVE	B,UUOD
	JRST	UOASC1
UOASCR:	SKIPA	C,[^M]	; CR FOR END OF TYPE
UOASC:	MOVEI	C,0	; NO CR
	HRLI	B,440700	; MAKE ASCII POINTER
UOASC1:	ILDB	A,B	; GET CHAR
	JUMPE	A,.+3	; FINISH?
	PUSHJ	P,IOTA
	JRST	.-3	; AND GET ANOTHER
	SKIPE	A,C	; GET SAVED CR?
	PUSHJ	P,IOTA
	JRST	UUORET

UOASCC:	HRLI	B,440700	; MAKE ASCII POINTER
UOAS1C:	ILDB	A,B		; GET CHAR
	CAIN	A,^C
	JRST	UUORET
	PUSHJ	P,IOTA
	JRST	UOAS1C		; AND GET ANOTHER

UOCTLP:	MOVEI	A,^P
	PUSHJ	P,IOTA1

UOASCI:	MOVE	A,B		; PRT ASCII IMMEDIATE
	PUSHJ	P,IOTA
	JRST	UUORET

UOSIX:	MOVE	B,UUOD
USXOOP:	JUMPE	B,UUORET
	LDB	A,[360600,,B]
	ADDI	A,40
	PUSHJ	P,IOTA
	LSH	B,6
	JRST	USXOOP

UOSIXS:	MOVE	A,[440600,,UUOD]
USLOOP:	ILDB	C,A
	ADDI	C,40
	PUSHJ	P,IOTC
	TLNE	A,770000
	JRST	USLOOP
	JRST	UUORET

UOHPOS:	SUB	B,HPOS
	JUMPLE	B,UOASCI
UOHPO1:	MOVEI	A,40
	PUSHJ	P,IOTA
	SOJG	B,UOHPO1
	JRST	UUORET

POWER:	0 ? 1 ? 10. ? 100. ? 1000. ? 10000. ? 100000. ? 1000000.

UOALIG:	MOVE	D,UUOD
	ANDI	A,7
	MOVE	A,POWER(A)
	MOVEI	C,40
UOALI1:	CAMLE	A,D
	PUSHJ	P,IOTC
	IDIVI	A,10.
	CAIE	A,1
	 JRST	UOALI1
	SETZ	A,

UODEC:	SKIPA	C,[10.]	; GET BASE FOR DECIMAL
UOOCT:	MOVEI	C,8.	; OCTAL BASE
	MOVE	B,UUOD	; GET ACTUAL WORD TO PRT
	JRST	.+3	; JOIN CODE
UODECI:	SKIPA	C,[10.]	; DECIMAL
UOOCTI:	MOVEI	C,8.
	MOVEM	C,BASE
	SKIPN	A
	HRREI	A,-1	; A=DIGIT COUNT
	PUSHJ	P,UONUM	; PRINT NUMBR
	JRST	UUORET

UONUM:	IDIV	B,BASE
	HRLM	C,(P)		; SAVE DIGIT
	SOJE	A,UONUM1	; DONE IF 0
	SKIPG	A		; + => MORE
	SKIPE	B		; - => B=0 => DONE
	PUSHJ	P,UONUM		; ELSE MORE
UONUM1:	HLRZ	C,(P)		; RETREIVE DIGITS
	ADDI	C,"0		; MAKE TO ASCII
	CAILE	C,"9		; IS IT GOOD DIG
	ADDI	C,"A-"9-1	; MAKE HEX DIGIT
	PUSHJ	P,IOTC
	POPJ	P,		; RET

IOTC:	PUSH	P,A
	MOVE	A,C
	PUSHJ	P,IOTA
	JRST	POPAJ

IOTA:	CAIN	A,^P
	JRST	IOTAP
IOTA1:	SKIPN	CTRLJ
	 JRST	[CAIN A,^J
	 	  POPJ P,
		 JRST .+1]
	XCT	XCTIOT
	CAIN	A,^I
	 JRST	[MOVE A,HPOS
		 ADDI A,10
		 ANDI A,7770
		 MOVEM A,HPOS
		 POPJ P,]
	AOS	HPOS
	CAIE	A,^M
	 POPJ	P,
	SETZM	HPOS
	POPJ	P,
IOTAP:	XCT	XCTUPA
	ADDI	A,100
	JRST	IOTA1

POPAJ:	POP	P,A
	POPJ	P,

; PRINT DISK FORMAT DATE.
PDSKDA:	PUSH	P,A
	PUSH	P,B
	.CALL	[SETZ
		 SIXBIT	/RQDATE/
		 SETZM	A]
	 .LOSE	1000
	LDB	B,[220500,,A]		; GET DAY OF MONTH
	ODEC	B
	OASCI	40
	LDB	B,[270400,,A]		; GET MONTH
	OASC	@MONTHS-1(B)
	OASC	[AzLð§X¹SCIZ / 19/]
	LDB	B,[330700,,A]		; YEAR
	ODEC	B
	OASC	[ASCIZ /  /]
	TLZ	A,-1
	ASH	A,-1
	IDIVI	A,3600.			; # HOURS AFTER MIDNIGHT IN A
	CAIN	A,0
	 ODEC	"0
	ODEC	A
	OASCI	":
	MOVE	A,B
	IDIVI	A,60.
	CAIGE	A,10.
	 OASCI	"0
	ODEC	A
	OASCI	":
	CAIGE	B,10.
	 OASCI	"0
	ODEC	B
	POP	P,B
	POP	P,A
	POPJ	P,

MONTHS:	[ASCIZ	/January/]
	[ASCIZ	/February/]
	[ASCIZ	/March/]
	[ASCIZ	/April/]
	[ASCIZ	/May/]
	[ASCIZ	/June/]
	[ASCIZ	/July/]
	[ASCIZ	/August/]
	[ASCIZ	/September/]
	[ASCIZ	/October/]
	[ASCIZ	/November/]
	[ASCIZ	/December/]


; INTERRUPT HANDLER

TSINT:	0
TSINTR:	0
	EXCH	A,TSINT
	TLNN	A,400000
	 JRST	TSWD1
	TRNN	A,1_TTYI
	 JRST	TSOUT
	MOVEI	A,TTYI
	.ITYIC	A,
	 JRST	TSOUT
	SKIPE	QMODE			; CTRL-G KILLS UNLESS  JUST TYPED
	 JRST	TSOUT
	CAIN	A,^G
	 .BREAK	16,60000
	SKIPN	INTALL
	 JRST	TSOUT
	CAIE	A,^S
	 JRST	TSOUT
	.RESET	TTYI,
	MOVE	P,PDLPTR
	.IOT	TTYO,A
	OASCR	[0]
	.DISMIS	[PTMAL1]
TSWD1:	TRNN	A,%PIPDL		; PDL OVERFLOW
	 JRST	TSOUT
	PUSH	P,A			; P STACK HAS BUFFER
	MOVE	A,TSINTR
	LDB	A,[270400,,-1(A)]	; GET AC FIELD
	CAIN	A,P
	 FATINS	PDL OVERFLOW ON NON-EXPANDABLE PDL
	PUSH	P,B
	PUSH	P,C
	AOS	PDLNUM			; NUMBER OF TIMES CAME HERE
	HLRE	A,MAPLEN		; GET CURRENT LENGTH
	MOVNS	A
	PUSH	P,A			; AND SAVE IT
	ADDI	A,15.*MAPSIZ+1		; ENOUGH FOR 15 MORE LINES
	PUSHJ	P,IBLOCK		; GET SPACE IN A
	MOVE	C,A			; AND SAVE IT
	MOVE	B,(P)			; GET LENGTH
	ADDI	B,(A)
	HRL	A,MAPLEN		; SET UP BLT
	BLT	A,(B)			; MOVE STACK
	POP	P,A
	MOVNS	A
	HRLI	A,-15.*MAPSIZ(A)
	HRR	A,C			; MAKE NEW POINTER
	MOVE	B,A
	SUB	B,MAPLEN		; GET INCREMENT
	HRLI	B,-15.*MAPSIZ		; FIXUP TO PREV
	ADD	PREV,B
	MOVEM	A,MAP'.þ“HOHBM;tR % /BI)ugÿdGð0QðX[ø_ï8Çzh"BF|w(prp@BF|w<þÄ@C,n	AðèD!/LOð0øw¾³h(øì˜ü×p0î8CL$pap÷ÈŠñO Ήô Ó§ù1çE‰÷è#Ì«ø¯.ù•b yúj Yù°iK[øÔ¢ÅAøó*ÅAô6Û7g÷
œ8qô
X5e÷
X³Aö.[2söm7môZµmö®Z [ö,ܵköM±i÷(¶gö,1e÷.[ kömœ7a÷,Y0Aö¬š2söˆn¾}ôE
÷”âԏô$Ó©ú¨ƒArô€	52h,6Hõ¤.hi42hûøõƒÿÿõÈ´
,+hh
h/Zxõƒ€õ´Óõƒ€õ´Óõ`41/Zxõ´Óõ´Óõƒ€õ´Óõƒ€õ´Óõ`4+/Zxõ´Óõ´Óõ´Óõ´Óõƒ€õ´Óõƒ€õ´Óô¸õÀ€ûô8	ô/ÿùô @_ï}ô¸õÀ€ûô8
ô/ÿûô @_ï~ _ï}ô(õƒ€,6öèM-R XõȀõƒ€õ€ô¸õÀ€ûõƒ€õ„õ‡øö©‡1_/D"hjúx  F_ï~ô¸õÀ€ûõ¸
õ„õ¯ÿùõ¯ÿùõƒ€õ´Óõ‡øõƒ€õ´Óõ€,6ô	€ D_ï} F_‡öèMð(4Õõ¸	õ¯ÿóõ¯ÿûõ¯ÿûõ‡øö™4m2$_ï|õ`4m X4dQ$õÁ_õñ hkö+ôôÿÿ _ï|2B_‡+h9õå´×+h::_‡+h,õƒ€õ´Óõ¯ÿûõ¯ÿûõƒ€õ´Ó _‡5"he hl.@_‡õƒ€õ€öèM-R Xö¨ƒ‡1ûâ/B$hjS` òè4Ù0@ö0+hG+3Fhm+hd<Fhdõ¸	õ¯ÿï__ïzôX__‡.õȀõƒ€õ€ B_ï}õ¸
õ¯ÿíõ‡øõ€,6õ‡øòè4Ûö0+hd _‡õè€ô8õÁûôˆö‘´± hnö0öPŒ7+hdZ5FhU _‡/"ô8õÁûôˆ4Fh_ hnö0öPŒ7+hdZö±´·ô8õ‡ƒÇÙ pô8!,%ô8õ‡ƒÇÙôƒ€ _‡õ‡ƒ¤Íõå´×+h</hiõå´×ô¸#õÀ€ûô õå´Ý+a$4 $4 ð$4 0ô$4P
%B,ûlL“úu* Gø‘aÌAõ«A™ú±Q ƒùÖP"Ÿú$ϝø3 ƒúvfU›ôèA‡øªP%yúQæO‡ô+A§úh*>Aô¯*Y¡ø«k ƒúvfU›ô¢Ã©ùôŸ K÷”£ÌŸøh Ó¡ø0â ©÷ȼ©û4"­¯ôèA‡ø¨+E‡ú“é>Aô¯)G™ùðÐD«úÌPT}ô	^Iú‘iNƒù‹iS«øTG‹ú‹fO‡ôŸ K÷”£ÌŸøh&υû4èA‡ø¨*>Aô¯$Ωø´§A™õ´©Õ…úH É«úÑaԟúH¾Aô¯$Ωø´§A™õ´©Õ…úH"A©ø+iEƒø•Ð2}ô	^Iú‘iNƒù‹iS«øTA¥ø´âÔAö/%yù3ªE¥ùÐf-¥úuaRAøjA[ø4¢Á‰ôß K÷”£ÌŸøh&O§úu ™ø¨*>AùõjC‘ø3"ñS·î[þYseåü»±åÉôñjËü}#Eô	^Rù“᠝ú³& ©÷×P Að3DAd/P|`iBI1FatLhdBM;þ”ÃBI)ugx}H`(BM*zps0GBF|wPþÐkBF|w(prp2BF|w<ps! D!/LO
 øw¾³ð47ðdC,n	Aðè'hPT(gøì˜ü×pPð5ðì?x)ðÔyðü™0CL$þx÷ÈŠñO Ήô Ó§ù1çE‰÷è#Ì«ø¯.ù•b yúj Yù’iÔ«ôæU‹ôm´göîX²a÷, eö.´sö2qôØ8oöm¹oöí1eöÌÙ1e÷±g÷-[7söLعAõ¬[9mö
ضoöm3kömµsöM2möÌØ9Aöl6iöî1iö(4söí˜5m÷.P1göŒÙ´iöŒÙ cöŒÜ6möMš¶Aö8AöM™1möˆ²iöl!»÷ϐ
ôë€Ñ$XZ=fhCö±4¡õ¸õ¯ÿñõ‡ø
õ€,6õ¯ÿ÷õ¯ÿ÷Bpõ€,6õ‡ø D_ï}õ¸	õ¯ÿíõƒ€õ´§õ¸õ¯ÿíõ¯ÿóõ¯ÿóõ‡ø _ï}õ`4£ D_ï~+hõå´¯ôƒ€+aðÿÿÿÿÿð 0 
0ñ‘4MÉûlM«ùÑÖ̟útÐ#‰ø°æ QôU Ì«ø¨L“úuA§û3*ÍAø4ìÌ«ù¨)ЃøqPS¡ø0â §úaÅAø3¬©AúQkE¥úqP%yú–hE[úè Ó³ù•f ­ø°êO¥÷ȼ©û4"­¯ôèA‡ø¨+E‡ú“é>Aô¯$Ωø´§A™õ´©Õ…úH ҋúqj c÷ȼ“ùÕ"ҝø3Ò§ú°© ‰ø5 ­ƒúQ`ÄAöo%yù3ªE¥ùÐf-¥úuaRAøjA[úQiÅ¥úÑP2}ôm°Aö aô0Aö aô0Aön K÷’gT‹úS Ì[úTêÂ¥ô ԃõ°hR“ùÕ4}ô	^Iú‘iNƒù‹iS«øTAøh>»DAd/P|`SøYý¼¯H%ð0OEfpxLp$C^\a(ÿ€Gø¼ŒK©ÿEBI4j3þ×T=BF|w<psðè[A8D!/LOðHøw¾³hH,øì˜ü×p
0ð´3ðXið̃ðd¥CL$pap÷ÈŠñO Ήô Ó§ù1çE‰÷è#Ì«ø¯.ù•b yúj YùµgG[ù“éÓAøó*ÅAô6Ø°e÷¸göLÜ9kö
Y qöÌ\´a÷-4AöM¸köÈ·cöî\8sö͚ e÷[¸g÷˜ [ö-Ø·söÙ8eö3oö8qöܵq÷. eö-´qömš8aôZ·e÷
Ü!»÷ϐ
ñ¢žS‹ú‘ÐM«ùÑÖÁùÓê·ø¨ƒAðw,6Hõ¤,6Hõ¤,6Hõ¤,6Hõ¤,6Hõ¤	,h+/ZxöèM-Rõƒ€õ´mõƒ€õ´mõ´mõ´m$8nXfõƒ€,6h7õƒ€,6h7 " B_ï}öèM-Rõ¸õ¯ÿïõ¯ÿ÷õ¯ÿ÷õ‡ø	 D_ï|5Dhõ¸õ¯ÿíõƒ€õ´oõ¯ÿùõ¯ÿùõ‡øô8
/h8+h5õ¸õ¯ÿïõ¯ÿõõ¯ÿõõ¸õ¯ÿíõ‡øõ€,6õ‡øô¯ÿû D_ï~òè4qö0+h/õ¸õ¯ÿíõƒ€,6h9õ¸õ¯ÿíõ¯ÿõõ¯ÿõõ‡øô	€õ‡ƒµÝ _ï| _ï{4fQ&.ð€W+ð0ë
PDL:	BLOCK 30ð7gX">>
<UNASSIGN Bð0 ABBLE>
<GC 0 T>ô€X?XBZE BLOCK IN MAP
BUF==-2			; SAVED BYTE POINTER TO ^M TERMINATING LINE
HP==-1			; HORIZONTAL POSITION
CHAR==0			; # OF CHARACTERS ON LINE

O=0
A=1
B=2
C=3
D=4
E=5
F=6
CCT=7			; COUNT OF CHARACTERS IN BUFFER
BUFPTR=10		; BYTE POINTER TO LAST CHARACTER IN BUFFER
CHPOS=11		; HPOS ON CURRENT LINE
CCHARS=12		; # OF CHARACTERS ON CURRENT LINE
PREV=13			; POINTER TO ENTRY IN LINE MAP FOR PREVIOUS LINE--STACK
P=17

SUBTTL	MACROS

DEFINE ECHO
	SKIPN	JCLMOD
	 .CALL ECHOBK
	 JFCL
TERMIN

; LOSSAGES
DEFINE FATINS NAME\
	.VAXX|Y2PLEN		; FITðB‰TITLE TRIVIA startup

.MLLIT==1

TTYCHN==1
SAVCHN==2
MUDCHN@öƒÿÿõ`‡1ôÿÿô¯ÿý D_‡õ¸õ¯ÿíõ¯ÿýXð€?õ
<USE-TOTAL "ASYLUM">

<USE "MADMAN" "STR">

<FLOAD "AR2:TAA;SSNAME NBIN">

<GDECL (QSPACE ASPACE SSPACE MOBYSPACE LOSSSPACE)
       SPACE
       (TVAS>"X%
DSKI==3
DSKO==4
CLIO==5

MAPSIZ==3		; SIZE OF BLOCK IN LINE MAP

; OFFSETS INTO LINð€YðÍVARIAB
MUMBLE=Y2X|TITLE TVBUG

.MLLIT==1

TTYI==1
TTYO==2îðY!ûlQƒúrâÄ[ør"×ðð YwôâE‡ùˆ"­ø3*ÅEôgYAú’fÅAøÒl)Aô¯)G™ùðÐT­ø4é ©÷ȼ©û4"­¯ôiٙú³PV‹øu'Ò}ô	^Rù“á §út Ëô K÷•,ЋõµÐS¡ø0â ­ø°êO¥÷ȼ“ùÕ"ҝø3Ò§ú°© ƒúQiÅ©ô_ K÷’gT‹úS Ì[úTêÂ¥ô ԃõ°iEƒøˆ¾Aù’iÔAùõjC‘ø3® AEoDoÑCt2þL]øRXÆÍtM)`BI)ugÿdOHB6N@ÿ0,Iøì˜ü×þ!C,n	A/P	PD!/LO
 Xøw¾³Y YNISH
	POP	P,C
	POP	P,B
	POP	P,A
TSOUT:	EXCH	A,TSINT
	.DISMIS	TSINTR	

CONSTA
ðX¹&4ð4PCL$pap÷ÈŠñO Ήô Ó§ù1çE‰÷è#Ì«ø¯.ù•b yúj Yú0iˋø‹aȋørÐG™ú±P!·öηsöLY [ö-ضmö¹cöÈ1oöÚ´qöM c÷
™8mö,5i÷
˜¶mö
š aô
Y4e÷-Ý}÷ÈŠñO#ċøs(©úÐiÓSôiٙú³P(©úÔèA‡ø¬T §úaÅ}ôE
÷”âԏô`əõ°äA“ùËaȋørÐ'F,6Hõ¤,6Hõ¤,h+/Zx,6õ´ƒ _‡ô8õÁûõÀˆõƒ€õ€ô¸õÀ€û,6õ„ô¸õÀ€û,6õ„öèM-R,6hB,6hBöèM-Rõ¯ÿûõ¯ÿûõ¯ÿ÷õ¯ÿ÷Dp D_ï}ö±4'ô8õ崅+h@õ¯ÿûõ¯ÿûõƒ€,6õ¯ÿùõ¯ÿùBpõ€,6Fpô¯ÿÿ DX hCö0+h+õ€,6õ¯ÿõõ¯ÿõDpô¯ÿ÷ D_ï| hCöõ`4ô8õ‡ƒÇÙô¯ÿù _ï}õ‡ƒ¤Íô8õ‡ƒÇÙ pîô8,%õ¯ÿÿõ¯ÿÿBpô8õ‡ƒÇÙõ‡ƒ¤S _ï| ô„ô/ÿ÷ F_ï|õ`4ô8õ‡ƒÇÙ pô8,%ô8õ‡ƒÇÙô¯ÿù _ï}õ‡ƒ¤Íô8õ‡ƒÇÙ pô8,%ô¸!õÀ€û ô„ô/ÿÿ FXô8#õ‡ƒÇÙô	€õ‡ƒµÝ ô¯ÿÿ Xõ‡ƒµÝô€ ô¯ÿÿ HXô8õ‡ƒÇÙô¯ÿÿ X,$iô8õ‡ƒÇÙõ‡ƒ¤Sõ`4õ崇ôƒ€'+aô`8DIMûlMƒù3Ñø2g-‡ùaËAôq"Ùô
Vƒù•b¢Aø5'ÍAú’fÅAøÒl)AøjA[úQ`įôiE§øµDƒúVÁ¥ø°b ¯ù3§IøëfÁ“ùÐ&cô	^Rù“á ›ùÑlTAú%yúQæO‡ô+A§úh*>Aô¯)G™ùðÐQ§úaÅAúTAùõjC‘ø3"ôHCƒùÉê ¥ø°b Eô Eô	^Rù“á ‰ø5 ­‹úT§Ò§ô ƒùÔî Að-DAd/Pÿ„°ƒøRXÆÍtM>BI-^(þ×toBI@tE(xBM;tR %ðleBI1Faþ“4EBI)ugx}H!ðOð`]ðˆmH?D!/LOðhøw¾³h`C,n	A/PðD8øì˜ü×ppACL$pap÷ÈŠñO Ήô Ó§ù1çE‰÷è#Ì«ø¯.ù•b yúj Yù°dÌ[ør ɝõ°äE‡ùh#Ì«ø¨Ûmöí0eö1e÷2cöMš1Aõ¬X¸cö,6söMÐ1gö¬Ü1aöŒÐ-cöÎ\µgö.Y´kôY8s÷
0cölP1eöl kömœ7a÷,Y0Aö¬š2söˆn¾}ôE
÷”âԏôäΝù3£­›ø2f?AôàÐ Að+,6Hõ¤,6Hõ¤,h+/Zx _‡,6õ„öèM-R _ï~òè4#0@+h h0@+hòè4%0@+h _‡2"X+h  _‡õ`4!õ¯ÿÿõ¯ÿÿô€,<'ôƒ€/h+a$4$4$401Q9ûlW“ùӤΏõ³`ə÷èċøs(EúÐfU‹ôHO¥ô Ì§ø¨+Ï¥ø<­ø°êO¥ôÚ ƒùÖn¾AúóéDSû¨ AðDAd/Pÿ„°#C[g'3wDpøì˜ü×pîD!/LO
 øw¾³ð4CL$pap÷ÈŠñO Ήô Ó§ù1çE‰÷è#Ì«ø¯.ù•b yúj YúògN“ùÑÖ̓ù3 ù•b Cûm›±a÷,Z0AöL[´oö¬Ø·söH köM9iô7_>A
ôÍY! 6þ	XBF|w<þÄCL$pap÷ÈŠñO Ήô Ó§ù1çE‰÷è#Ì«ø¯.ù•b yúj YúQkE¥úqPG™ú±P!·ö,³oö\³oô
9möÙ5oöÈ eö̘´qô7_>A
 6<CC
back to top