From ba76b5981ed560226f31b2d44e8b96c431210560 Mon Sep 17 00:00:00 2001 From: Lars Brinkhoff Date: Thu, 16 Aug 2018 20:42:23 +0200 Subject: [PATCH] Assemble Tech II for TV display. --- build/misc.tcl | 5 +- src/agb/c.dis | 511 +++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 513 insertions(+), 3 deletions(-) create mode 100644 src/agb/c.dis diff --git a/build/misc.tcl b/build/misc.tcl index 7b0b92bd..6a194cb3 100644 --- a/build/misc.tcl +++ b/build/misc.tcl @@ -389,9 +389,8 @@ respond "Command:" "d" respond "*" ":pdump games; ts trek\r" respond "*" ":kill\r" -# Chess: timesharing, no TV display -respond "*" ":midas /t games;ts chess2_rg;chess2\r" -respond "with ^C" "TV==0\r\003" +# Tech II chess: timesharing, using TV display +respond "*" ":midas games;ts chess2_rg;chess2\r" expect ":KILL" # Unknown chess diff --git a/src/agb/c.dis b/src/agb/c.dis new file mode 100644 index 00000000..5b60ec2e --- /dev/null +++ b/src/agb/c.dis @@ -0,0 +1,511 @@ +; TV CHESSBOARD, INTENDED TO BE .INSRT'ED + +TVCTAB: MOVE A,61C(B) ; VACANT WHITE SQ + MOVE A,153C(B) ; WP ON W SQ + MOVE A,151C(B) ; WN ON W SQ + MOVE A,147C(B) ; WB ON W SQ + MOVE A,145C(B) ; WR ON W SQ + MOVE A,143C(B) ; WQ ON W SQ + MOVE A,141C(B) ; WK ON W SQ + MOVE A,113C(B) ; BP ON W SQ + MOVE A,111C(B) ; BN ON W SQ + MOVE A,107C(B) ; BB ON W SQ + MOVE A,105C(B) ; BR ON W SQ + MOVE A,103C(B) ; BQ ON W SQ + MOVE A,101C(B) ; BK ON W SQ + JFCL [0] ; VACANT BLACK SQ + MOVE A,152C(B) ; WP ON B SQ + MOVE A,150C(B) ; WN ON B SQ + MOVE A,146C(B) ; WB ON B SQ + MOVE A,144C(B) ; WR ON B SQ + MOVE A,142C(B) ; WQ ON B SQ + MOVE A,140C(B) ; WK ON B SQ + MOVE A,112C(B) ; BP ON B SQ + MOVE A,110C(B) ; BN ON B SQ + MOVE A,106C(B) ; BB ON B SQ + MOVE A,104C(B) ; BR ON B SQ + MOVE A,102C(B) ; BQ ON B SQ + MOVE A,100C(B) ; BK ON B SQ + +DSQ: SKIPG F,BOARD(A) ; DISPLAY SQ WHOSE NUMBER IS IN RIGHT HALF OF A + JRST DSQ2 + CAIGE F,PIECE+20 + SKIPA F,[1] + MOVEI F,7 + ADD F,@BOARD(A) +DSQ2: CAI A,-170(A) ; OR SETCMI FOR INVERTED BOARD + MOVEI A,-24(A) + IDIVI A,12 + MOVEI E,(A) ? IMULI E,50.*22 + MOVEI D,(B) + EQVI B,(A) + TRNE B,1 ? SKIPA B,TVCTAB+15(F) ? MOVE B,TVCTAB(F) + HLLZM B,MRBTS2 ? MOVEI C,44 ? MOVE A,(B) + HRLI E,-50. ? JRST @DSQ3-1(D) +DSQ3: BLOCK 10 + +DEFINE DPBSEQ A,B + MOVEI D,A ? JSP F,MORBTS +IFL A-40, DPB [<44->_36+_30+ZZ2+B(E)] +IFE A-40, LSH 4 ? MOVEM ZZ2+B(E) +TERMIN + +REPEAT 8,[ +$$==. ? LOC DSQ3+.RPCNT ? $$ ? LOC $$ +ZZ==1100-403.+50.*.RPCNT +ZZ2==760066+/40 +ZZ==ZZ/40*40+40-ZZ + MOVEI D,ZZ ? JSP F,MORBTS + DPB [<400+ZZ>_30+ZZ2(E)] +IFLE 22-ZZ, DPBSEQ 62-ZZ,1 +IFG 22-ZZ, DPBSEQ 40,1, ? DPBSEQ 22-ZZ,2 + ADDI E,21 ? AOBJN E,$$ ? POPJ P, +] + +MORBTS: MOVEI + CAILE D,(C) ? AOJA B,MRBTS1 + LSHC (D) ? SUBI C,(D) ? JRST (F) +MRBTS1: LSHC (C) +MRBTS2: MOVE A,(B) + SUBI D,(C) ? LSHC (D) + SETCMI C,-45(D) ? JRST (F) + +TVDINI: .CALL [ SETZ + 'CNSGET + 1000,,TTOCHN + 2000,, + 2000,, + 402000,, ] ; TCTYP + .VALUE + CAIE 5 ; SKIP IF TV + JRST NO.TV + MOVEI 28. + MOVEM LINEL + SETOM TVFLG + MOVE A,[-10,,370] + MOVEI B,0 + .CALL [ SETZ + 'CORBLK + 1000,,600000 + 1000,,-1 + A + 1000,,-2 + SETZ B ] + .VALUE + POPJ P, + +NO.TV: SETZM TVFLG ? MOVSI (POPJ P,) ? MOVEM DBRD ? MOVEM INCD + MOVEI 79. ? MOVEM LINEL + POPJ P, + +DBRD: CAI + MOVSI A,-8*50. ;WRITE BORDERS + SETO B, +DBRD1: DPB B,[270300,,760073(A)] + DPB B,[40300,,760107(A)] + ADDI A,21 ? AOBJN A,DBRD1 + SETCMI C,17 ? MOVSI A,-14 + REPEAT 3, DPB B,[42600,,760005+22*.RPCNT(A)] + REPEAT 3, DPB B,[42600,,776133+22*.RPCNT(A)] +DBRD2: REPEAT 3, MOVEM C,760006+22*.RPCNT(A) + REPEAT 3, MOVEM C,776134+22*.RPCNT(A) + AOBJN A,DBRD2 + MOVSI S,-142+25-1 +TVBD: MOVEI A,25(S) + SKIPL BOARD(A) + PUSHJ P,DSQ + AOBJN S,TVBD +TVBD1: MOVE [PIECEL,,DPCL] + BLT DPCL+37 + POPJ P, + +CHSQS: BLOCK 100 +DPCL: BLOCK 40 + +INCD: CAI + MOVEI S,CHSQS-1 + MOVSI A,-40 +INCD1: MOVE PIECEL(A) + CAMN DPCL(A) + JRST INCD2 + PUSH S, + MOVE DPCL(A) + PUSH S, +INCD2: AOBJN A,INCD1 + PUSHJ P,INCD3 + SKIPE (A) + PUSHJ P,INCD3 + SKIPG (A) + JRST TVBD1 + +INCD3: SETCMI R,-CHSQS+2(S) + HRLOI R,(R) + AOBJP R,CPOPJ1 +INCD3A: SKIPLE A,CHSQS(R) + XCT @(P) + JRST INCD3B + SUBI A,BOARD + PUSHJ P,DSQ +INCD3B: AOBJN R,INCD3A + JRST CPOPJ1 + +TVCR: SETZM LINPOS + IRP A,,[0,A,B] + PUSH P,A ? TERMIN + IRP A,,[^P,"H,^H,^P,"D] + .IOT TTOCHN,[A] ? TERMIN + .CALL [ SETZ + SIXBIT /RCPOS/ + 1000,,TTOCHN + 402000,,A ] + .VALUE + MUL A,[22*14/2,,] + ADD A,[-14,,760000] + SETZ B, + HRRM A,TVCR2 +TVCR1: HRLI B,-5 +TVCR2: SETZB (B) + AOBJN B,.-1 + DPB [321200,,@TVCR2] + ADDI B,22-5 + AOBJN A,TVCR1 + IRP A,,[B,A,0] + POP P,A ? TERMIN + POPJ P, + 61C: +600300140060 ? 030010014006 ? 003001400400 ? 600300140060 ? 030030014006 ? 003001401400 +600300140060 ? 060030014006 ? 003003001400 ? 600300140140 ? 060030014006 ? 006003001400 +600300300140 ? 060030014014 ? 006003001400 ? 600200300140 ? 060030010014 ? 006003001400 +600600300140 ? 060030030014 ? 006003001401 ? 400600300140 ? 060060030014 ? 006003003001 +400600300140 ? 140060030014 ? 006006003001 ? 400600300300 ? 140060030014 ? 004006003001 +400600200300 ? 140060030014 ? 014006003001 ? 400600600300 ? 140060030030 ? 014006003001 +401400600300 ? 140060060030 ? 014006003003 ? 001400600300 ? 140140060030 ? 014006006003 +001400600300 ? 100140060030 ? 014004006003 ? 001400600300 ? 300140060030 ? 014014006003 +001400600600 ? 300140060030 ? 030014006003 ? 001401400600 ? 300140060060 ? 030014006003 +003001400600 ? 300140140060 ? 030014006002 ? 003001400600 ? 300100140060 ? 030014006006 +003001400600 ? 300300140060 ? 030014014006 ? 003001400600 ? 600300140060 ? 030030014006 +003001401400 ? 600300140060 ? 060030014006 ? 003000000000 + +101C: +600300140060 ? 030010014006 ? 003001400400 ? 600300140060 ? 030030014006 ? 003001401400 +600000140060 ? 060030000006 ? 003003001401 ? 700300140140 ? 060022014006 ? 006003000440 +600300300140 ? 011000014014 ? 006007637000 ? 600200300100 ? 020030010014 ? 002000401400 +600600076370 ? 060030030000 ? 044000001401 ? 400701101600 ? 060060077622 ? 377003003007 +017476034140 ? 140300071600 ? 142006014000 ? 360001400300 ? 600003000014 ? 004010000060 +000100200600 ? 001400003014 ? 030000030000 ? 030600600000 ? 600000630010 ? 000014000004 +400200360001 ? 700100044004 ? 600062002003 ? 140304001060 ? 140141014140 ? 060602006020 +201001004040 ? 100604020020 ? 103004004140 ? 601406040300 ? 101004020101 ? 014003030100 +406060600620 ? 202010101030 ? 030777777777 ? 761401407777 ? 777777060060 ? 140000000063 +003003000000 ? 001440140060 ? 601403030002 ? 001414030060 ? 600100030000 ? 000014006004 +600000000300 ? 300317777777 ? 776014014377 ? 777777740600 ? 600000000000 ? 030030000000 +000001401400 ? 600300140060 ? 060030014006 ? 003000000000 + +103C: +600300140060 ? 030010014006 ? 003001400400 ? 600300140060 ? 030030014006 ? 003001401400 +600300140060 ? 060030014006 ? 003003001400 ? 600300140140 ? 060030014006 ? 006003001400 +600300300000 ? 060030000014 ? 000003001400 ? 000200000000 ? 000000010000 ? 000000000000 +600700000000 ? 007030013000 ? 000000320400 ? 330000000015 ? 400003201400 ? 140260002024 +030003005000 ? 140500300140 ? 120006012007 ? 007002400300 ? 240120120050 ? 004005402402 +403200200110 ? 050050044014 ? 003201201201 ? 300600024024 ? 024024030000 ? 500500500501 +401012012012 ? 012020060260 ? 260640640003 ? 004404411011 ? 000140150150 ? 260260006001 +201205005000 ? 100024027720 ? 120004000543 ? 777706400300 ? 011360007510 ? 014000236000 +036200600007 ? 777777774030 ? 020177777777 ? 701401403000 ? 000006020060 ? 060000000140 +003001400000 ? 003000140030 ? 301406060002 ? 000606030141 ? 400100014000 ? 000030006000 +300000000600 ? 300007777777 ? 774014000177 ? 777777700600 ? 600000000000 ? 030030000000 +000001401400 ? 600300140060 ? 060030014006 ? 003000000000 + +105C: +600300140060 ? 030010014006 ? 003001400400 ? 600300140060 ? 030030014006 ? 003001401400 +600300140060 ? 060000000000 ? 003003000000 ? 000000140140 ? 000000000006 ? 006000000000 +000300300000 ? 000000004014 ? 000760770370 ? 000200010410 ? 204200010000 ? 217607704000 +600404000000 ? 100030030100 ? 000002001401 ? 402000000040 ? 060060040000 ? 001003003001 +000000020140 ? 140037777777 ? 406006000006 ? 003000300300 ? 000140060004 ? 004000006000 +600000200200 ? 140014000014 ? 014006000140 ? 000600600140 ? 003000030030 ? 006000030001 +401400140000 ? 600060060006 ? 000006003003 ? 000140000140 ? 140140006000 ? 001406006000 +140000030100 ? 100006000000 ? 300004000140 ? 000006000300 ? 006000000060 ? 014000140000 +001400600406 ? 000000014030 ? 030140000000 ? 300401406000 ? 000003000060 ? 140000000060 +003002000000 ? 000400140077 ? 777777770002 ? 001000000000 ? 200100020000 ? 000004006000 +400000000100 ? 300017777777 ? 776014000377 ? 777777740600 ? 600000000000 ? 030030000000 +000001401400 ? 600300140060 ? 060030014006 ? 003000000000 + +107C: +600300140060 ? 030010014006 ? 003001400400 ? 600300140060 ? 030030014000 ? 003001401400 +600000140060 ? 060030000006 ? 003003001400 ? 000300140140 ? 060014000006 ? 006003000740 +000300300140 ? 031400014014 ? 006001414000 ? 600200300060 ? 140030010014 ? 003001401400 +600600140014 ? 020030030006 ? 000600001401 ? 400100030000 ? 060060006001 ? 400003003000 +100060000140 ? 140002003014 ? 006006000140 ? 041700300300 ? 102001163014 ? 004006040036 +020600200301 ? 000000410014 ? 014030000030 ? 000600600200 ? 000400030030 ? 004000010001 +401400100300 ? 200060060002 ? 006004003003 ? 000060770300 ? 140140040417 ? 604006006003 +010060100300 ? 100140201402 ? 014004006006 ? 030140600300 ? 300040002010 ? 014014001000 +040000600600 ? 030003000030 ? 030000200040 ? 001401400006 ? 003000060060 ? 000040040003 +003000001403 ? 000140140000 ? 010040000002 ? 000000303000 ? 000100000002 ? 040000006000 +000077000000 ? 300077777777 ? 777414001777 ? 777777770200 ? 600000000000 ? 030030000000 +000001401400 ? 600300140060 ? 060030014006 ? 003000000000 + +111C: +600300140060 ? 030010014006 ? 003001400400 ? 600300140060 ? 030030014006 ? 003001401400 +600300140060 ? 060030014006 ? 003003001400 ? 000300140140 ? 060000014006 ? 006003000000 +600300300140 ? 700000014014 ? 006017400000 ? 600200300316 ? 000030010014 ? 002070001400 +600600040340 ? 060030030003 ? 001401001401 ? 400140014000 ? 060060006000 ? 140003003000 +306001400140 ? 140014100014 ? 006006000600 ? 000100300300 ? 030000003004 ? 004000400000 +030000200030 ? 000000300014 ? 001400000002 ? 000600060000 ? 000060030001 ? 000160000401 +400060016600 ? 014060001000 ? 606000101002 ? 060070140003 ? 000141417003 ? 000020006017 +600140000400 ? 100160006000 ? 014004000000 ? 300000100300 ? 000014000002 ? 014000001600 +000060600000 ? 060000001410 ? 020007000000 ? 030001400300 ? 000000600060 ? 014000000014 +003001600000 ? 000300140060 ? 000000006002 ? 003000000000 ? 140100140000 ? 000003006003 +000000000060 ? 300077777777 ? 777414001777 ? 777777770200 ? 600000000000 ? 030030000000 +000001401400 ? 600300140060 ? 060030014006 ? 003000000000 + +113C: +600300140060 ? 030010014006 ? 003001400400 ? 600300140060 ? 030030014006 ? 003001401400 +600300140060 ? 060030014006 ? 003003001400 ? 600300140140 ? 060030014006 ? 006003001400 +600300300140 ? 060030014014 ? 006000000400 ? 600200300000 ? 000030010014 ? 000000001400 +600600001400 ? 060030030000 ? 176003001401 ? 400016070040 ? 060060000600 ? 300003003001 +010002000140 ? 140060600060 ? 006006003010 ? 000400300300 ? 140600014014 ? 004006014000 +300600200300 ? 100004030014 ? 014003000301 ? 400600600020 ? 004020030030 ? 000600300001 +401400007034 ? 000060060020 ? 077600003003 ? 001401004000 ? 140140060020 ? 100006006003 +001403000300 ? 100140030060 ? 014004006000 ? 400400600300 ? 300010010030 ? 014014000600 +300400600600 ? 010002000030 ? 030000200040 ? 001401400004 ? 001000060060 ? 000700034001 +003000070000 ? 160000140007 ? 000000700002 ? 000700000003 ? 400100030000 ? 000014006000 +600000000300 ? 300017777777 ? 776014010377 ? 777777740600 ? 600000000000 ? 030030000000 +000001401400 ? 600300140060 ? 060030014006 ? 003000000000 + +141C: +600300140060 ? 030010014006 ? 003001400400 ? 600300140060 ? 030030014000 ? 003001401400 +600000140060 ? 060030000006 ? 003003001400 ? 000300140140 ? 060014000006 ? 006003000300 +000300300140 ? 006000014014 ? 006000140000 ? 200200300077 ? 740000010014 ? 001777000000 +600600001400 ? 000030030000 ? 030000001401 ? 400700601600 ? 020060077614 ? 377000003007 +777337774000 ? 140377777777 ? 740006017777 ? 777777400300 ? 777774777774 ? 004017777717 +777700200777 ? 776377777014 ? 037777747777 ? 770200777777 ? 177777600017 ? 777763777774 +000377417776 ? 077700007770 ? 177701776002 ? 177403776017 ? 740141760037 ? 700176006037 +400776003740 ? 100770017740 ? 077004007600 ? 176001740300 ? 176003740077 ? 014003740077 +001760600037 ? 401760077010 ? 020777777777 ? 760001407777 ? 777777000060 ? 140000000060 +003003000000 ? 001400140060 ? 601403030002 ? 001414030060 ? 600100030000 ? 000014006000 +600000000300 ? 300017777777 ? 776014010377 ? 777777740600 ? 600000000000 ? 030030000000 +000001401400 ? 600300140060 ? 060030014006 ? 003000000000 + +143C: +600300140060 ? 030010014006 ? 003001400400 ? 600300140060 ? 030030014006 ? 003001401400 +600300140060 ? 060030014006 ? 003003001400 ? 600300140140 ? 060030014006 ? 006003001400 +600300300000 ? 060030000014 ? 000003001400 ? 000200000000 ? 000000010000 ? 000000000000 +600700000000 ? 007030017000 ? 000000360400 ? 370000000017 ? 400003601400 ? 140360002074 +030003007400 ? 140700300140 ? 160006016007 ? 007003400300 ? 340160160070 ? 004007403403 +403600200170 ? 070070074014 ? 003601601601 ? 700600034034 ? 034034030000 ? 700700700701 +401016016016 ? 016020060360 ? 360740740003 ? 007407417017 ? 000140170170 ? 360360006001 +601607007000 ? 100034037760 ? 160004000743 ? 777707400300 ? 017360007570 ? 014000376000 +037600600007 ? 777777774030 ? 020177777777 ? 701401403777 ? 777776020060 ? 077777777740 +003001777777 ? 777000140037 ? 476371760002 ? 000771747637 ? 400100017777 ? 777770006000 +377777777600 ? 300007777777 ? 774014000177 ? 777777700600 ? 600000000000 ? 030030000000 +000001401400 ? 600300140060 ? 060030014006 ? 003000000000 + +145C: +600300140060 ? 030010014006 ? 003001400400 ? 600300140060 ? 030030014006 ? 003001401400 +600300140060 ? 060030014006 ? 003003000000 ? 000000140140 ? 000000000006 ? 006000000000 +000300300000 ? 000000004014 ? 000760770370 ? 000200017417 ? 607600010000 ? 377777774000 +600407777777 ? 700030030177 ? 777776001401 ? 403777777740 ? 060060077777 ? 777003003001 +777777760140 ? 140037777777 ? 402006000007 ? 777000000300 ? 000177760000 ? 004000007777 +600000200200 ? 177774000014 ? 014007777740 ? 000600600177 ? 777000030030 ? 007777770001 +401400177777 ? 600060060007 ? 777776003003 ? 000177777740 ? 040140007777 ? 777400006000 +177777770000 ? 100007777777 ? 700004000177 ? 777776000300 ? 007777777760 ? 014000177777 +777400600407 ? 777777774030 ? 030177777777 ? 701401407777 ? 777777020060 ? 177777777760 +003003000000 ? 001400140060 ? 000000030002 ? 001400000000 ? 600100037777 ? 777774006000 +777777777700 ? 300017777777 ? 776014000377 ? 777777740600 ? 600000000000 ? 030030000000 +000001401400 ? 600300140060 ? 060030014006 ? 003000000000 + +147C: +600300140060 ? 030010014006 ? 003001400400 ? 600300140060 ? 030030014000 ? 003001401400 +600000140060 ? 060030000006 ? 003003001400 ? 000300140140 ? 060014000006 ? 006003000740 +000300300140 ? 037400014014 ? 006001774000 ? 600200300077 ? 740030010014 ? 003777401400 +600600177774 ? 020030030007 ? 777600001401 ? 400177770000 ? 060060007777 ? 400003003000 +177760000140 ? 140003777014 ? 006006000177 ? 741700300300 ? 103777177014 ? 004006077777 +760600200301 ? 777777410014 ? 014037777770 ? 000600600377 ? 777400030030 ? 007777770001 +401400177477 ? 600060060003 ? 771774003003 ? 000077007700 ? 140140040760 ? 174006006003 +017717700300 ? 100140376376 ? 014004006007 ? 747740600300 ? 300077776010 ? 014014001777 +740000600600 ? 037777000030 ? 030000377740 ? 001401400007 ? 777000060060 ? 000077740003 +003000001777 ? 000140140000 ? 017740000002 ? 000000377000 ? 000100000003 ? 740000006000 +000077000000 ? 300077777777 ? 777414001777 ? 777777770200 ? 600000000000 ? 030030000000 +000001401400 ? 600300140060 ? 060030014006 ? 003000000000 + +151C: +600300140060 ? 030010014006 ? 003001400400 ? 600300140060 ? 030030014006 ? 003001401400 +600300140060 ? 060030014006 ? 003003001400 ? 000300140140 ? 060000014006 ? 006003000000 +600300300140 ? 700010014014 ? 006017400000 ? 600200300376 ? 000030010014 ? 003770001400 +600600077740 ? 060030030003 ? 777401001401 ? 400177774000 ? 060060007777 ? 740003003000 +363777400140 ? 140017577774 ? 006006000777 ? 777700300300 ? 037777777004 ? 004000777777 +770000200037 ? 777777700014 ? 001777777776 ? 000600077777 ? 777760030001 ? 777777777401 +400077776777 ? 774060001777 ? 607777701002 ? 073770177777 ? 000141777003 ? 777760006017 +600177777400 ? 100160007777 ? 774004000000 ? 377777700300 ? 000017777776 ? 014000001777 +777760600000 ? 077777777410 ? 020007777777 ? 770001400377 ? 777777600060 ? 017777777774 +003001777777 ? 777700140077 ? 777777776002 ? 003777777777 ? 740100140000 ? 000003006003 +000000000060 ? 300077777777 ? 777414001777 ? 777777770200 ? 600000000000 ? 030030000000 +000001401400 ? 600300140060 ? 060030014006 ? 003000000000 + +153C: +600300140060 ? 030010014006 ? 003001400400 ? 600300140060 ? 030030014006 ? 003001401400 +600700140060 ? 060030030006 ? 003003001401 ? 400300140140 ? 060060014006 ? 006003003000 +600300300140 ? 140030014014 ? 006006000400 ? 600200300000 ? 000030010014 ? 000000001400 +600600001400 ? 060030030000 ? 176003001401 ? 400017770040 ? 060060000777 ? 700003003000 +017776000140 ? 140040777760 ? 006006003017 ? 777400300300 ? 140777774014 ? 004006017777 +700600200300 ? 177774030014 ? 014003777701 ? 400600600037 ? 774020030030 ? 000777700001 +401400007774 ? 000060060000 ? 077600003003 ? 001001774000 ? 140140060037 ? 700006006003 +001777000300 ? 100140037760 ? 014004006000 ? 777400600300 ? 300017770030 ? 014014000777 +700400600600 ? 017776000030 ? 030000377740 ? 001401400007 ? 777000060060 ? 000777774001 +003000077777 ? 760000140007 ? 777777700002 ? 000760000017 ? 400100036000 ? 000074006000 +777777777700 ? 300017777777 ? 776014010377 ? 777777740600 ? 600000000000 ? 030030000000 +000001401400 ? 600300140060 ? 060030014006 ? 003000000000 + +100C: +REPEAT 8, 0 +000000000001 ? 700000000000 ? 000022000000 ? 000000000440 +000000000000 ? 011000000000 ? 000007637000 ? 000000000100 ? 020000000000 ? 002000400000 +000000076370 ? 000000000000 ? 044000000000 ? 000701101600 ? 000000077622 ? 377000000007 +017476034000 ? 000300071600 ? 140000014000 ? 360001400000 ? 600003000014 ? 000010000060 +000100000600 ? 001400003000 ? 030000030000 ? 030000600000 ? 600000600010 ? 000014000004 +000200360001 ? 700100004004 ? 600062002000 ? 140304001060 ? 140001014140 ? 060602000020 +201001004040 ? 000604020020 ? 103000004140 ? 601406040000 ? 101004020101 ? 000003030100 +406060000020 ? 202010101000 ? 000777777777 ? 760000007777 ? 777777000000 ? 140000000060 +000003000000 ? 001400000060 ? 601403030000 ? 001414030060 ? 600000030000 ? 000014000000 +600000000300 ? 000017777777 ? 776000000377 ? 777777740000 +; PLUS 6 ZEROES TELESCOPED INTO NEXT CHAR + +102C: +REPEAT 22, 0 +000700000000 ? 007000013000 ? 000000320000 ? 330000000015 ? 400003201400 ? 140260000024 +030003005000 ? 000500300140 ? 120000012007 ? 007002400000 ? 240120120050 ? 000005402402 +403200000110 ? 050050044000 ? 003201201201 ? 300000024024 ? 024024000000 ? 500500500500 +000012012012 ? 012000000260 ? 260640640000 ? 004404411011 ? 000000150150 ? 260260000001 +201205005000 ? 000024027720 ? 120000000543 ? 777706400000 ? 011360007510 ? 000000236000 +036200000007 ? 777777774000 ? 000177777777 ? 700000003000 ? 000006000000 ? 060000000140 +000001400000 ? 003000000030 ? 301406060000 ? 000606030141 ? 400000014000 ? 000030000000 +300000000600 ? 000007777777 ? 774000000177 ? 777777700000 +; PLUS 6 ZEROES TELESCOPED INTO NEXT CHAR + +104C: +REPEAT 16, 0 +000760770370 ? 000000010410 ? 204200000000 ? 217607704000 +000004000000 ? 100000000100 ? 000002000000 ? 002000000040 ? 000000040000 ? 001000000001 +000000020000 ? 000037777777 ? 400000000006 ? 003000000000 ? 000140060000 ? 000000006000 +600000000000 ? 140014000000 ? 000006000140 ? 000000000140 ? 003000000000 ? 006000030000 +000000140000 ? 600000000006 ? 000006000000 ? 000140000140 ? 000000006000 ? 001400000000 +140000030000 ? 000006000000 ? 300000000140 ? 000006000000 ? 006000000060 ? 000000140000 +001400000006 ? 000000014000 ? 000140000000 ? 300000006000 ? 000003000000 ? 140000000060 +000002000000 ? 000400000077 ? 777777770000 ? 001000000000 ? 200000020000 ? 000004000000 +400000000100 ? 000017777777 ? 776000000377 ? 777777740000 +; PLUS 6 ZEROES TELESCOPED INTO NEXT CHAR + +106C: +REPEAT 12, 0 +000014000000 ? 000000000740 +000000000000 ? 031400000000 ? 000001414000 ? 000000000060 ? 140000000000 ? 003001400000 +000000140014 ? 000000000006 ? 000600000000 ? 000100030000 ? 000000006001 ? 400000000000 +100060000000 ? 000002003014 ? 000000000140 ? 041700000000 ? 002001163000 ? 000000040036 +020000000001 ? 000000400000 ? 000030000030 ? 000000000200 ? 000400000000 ? 004000010000 +000000100300 ? 200000000002 ? 006004000000 ? 000060770300 ? 000000000417 ? 604000000000 +010060100000 ? 000000201402 ? 000000000006 ? 030140000000 ? 000040002000 ? 000000001000 +040000000000 ? 030003000000 ? 000000200040 ? 000000000006 ? 003000000000 ? 000040040000 +000000001403 ? 000000000000 ? 010040000000 ? 000000303000 ? 000000000002 ? 040000000000 +000077000000 ? 000077777777 ? 777400001777 ? 777777770000 +; PLUS 6 ZEROES TELESCOPED INTO NEXT CHAR + +110C: +REPEAT 15, 0 +700000000000 ? 000017400000 ? 000000000316 ? 000000000000 ? 002070000000 +000000040340 ? 000000000003 ? 001400000000 ? 000140014000 ? 000000006000 ? 140000000000 +306001400000 ? 000014100014 ? 000000000600 ? 000100000000 ? 030000003000 ? 000000400000 +030000000030 ? 000000300000 ? 001400000002 ? 000000060000 ? 000060000001 ? 000160000400 +000060016600 ? 014000001000 ? 606000100000 ? 060070140003 ? 000001417003 ? 000020000017 +600140000400 ? 000160006000 ? 014000000000 ? 300000100000 ? 000014000002 ? 000000001600 +000060000000 ? 060000001400 ? 000007000000 ? 030000000300 ? 000000600000 ? 014000000014 +000001600000 ? 000300000060 ? 000000006000 ? 003000000000 ? 140000140000 ? 000003000003 +000000000060 ? 000077777777 ? 777400001777 ? 777777770000 +; PLUS 6 ZEROES TELESCOPED INTO NEXT CHAR + +112C: +REPEAT 22, 0 +000000001400 ? 000000000000 ? 176000000000 ? 000016070000 ? 000000000600 ? 300000000000 +010002000000 ? 000000600060 ? 000000000010 ? 000400000000 ? 000600014000 ? 000000014000 +300000000000 ? 100004000000 ? 000003000300 ? 000000000020 ? 004000000000 ? 000600300000 +000000007034 ? 000000000000 ? 077600000000 ? 000001004000 ? 000000000020 ? 100000000000 +001403000000 ? 000000030060 ? 000000000000 ? 400400000000 ? 000010010000 ? 000000000600 +300000000000 ? 010002000000 ? 000000200040 ? 000000000004 ? 001000000000 ? 000700034000 +000000070000 ? 160000000007 ? 000000700000 ? 000700000003 ? 400000030000 ? 000014000000 +600000000300 ? 000017777777 ? 776000000377 ? 777777740000 +; PLUS 6 ZEROES TELESCOPED INTO NEXT CHAR + +140C: +REPEAT 12, 0 +000014000000 ? 000000000300 +000000000000 ? 006000000000 ? 000000140000 ? 000000000077 ? 740000000000 ? 001777000000 +000000001400 ? 000000000000 ? 030000000000 ? 000700601600 ? 000000077614 ? 377000000007 +777337774000 ? 000377777777 ? 740000017777 ? 777777400000 ? 777774777774 ? 000017777717 +777700000777 ? 776377777000 ? 037777747777 ? 770000777777 ? 177777600017 ? 777763777774 +000377417776 ? 077700007770 ? 177701776000 ? 177403776017 ? 740001760037 ? 700176000037 +400776003740 ? 000770017740 ? 077000007600 ? 176001740000 ? 176003740077 ? 000003740077 +001760000037 ? 401760077000 ? 000777777777 ? 760000007777 ? 777777000000 ? 177777777760 +000003777777 ? 777400000077 ? 176374770000 ? 001763747717 ? 600000037777 ? 777774000000 +777777777700 ? 000017777777 ? 776000000377 ? 777777740000 +; PLUS 6 ZEROES TELESCOPED INTO NEXT CHAR + +142C: +REPEAT 22, 0 +000700000000 ? 007000017000 ? 000000360000 ? 370000000017 ? 400003601400 ? 140360000074 +030003007400 ? 000700300140 ? 160000016007 ? 007003400000 ? 340160160070 ? 000007403403 +403600000170 ? 070070074000 ? 003601601601 ? 700000034034 ? 034034000000 ? 700700700700 +000016016016 ? 016000000360 ? 360740740000 ? 007407417017 ? 000000170170 ? 360360000001 +601607007000 ? 000034037760 ? 160000000743 ? 777707400000 ? 017360007570 ? 000000376000 +037600000007 ? 777777774000 ? 000177777777 ? 700000003777 ? 777776000000 ? 077777777740 +000001777777 ? 777000000037 ? 476371760000 ? 000771747637 ? 400000017777 ? 777770000000 +377777777600 ? 000007777777 ? 774000000177 ? 777777700000 +; PLUS 6 ZEROES TELESCOPED INTO NEXT CHAR + +144C: +REPEAT 16, 0 +000760770370 ? 000000017417 ? 607600000000 ? 377777774000 +000007777777 ? 700000000177 ? 777776000000 ? 003777777740 ? 000000077777 ? 777000000001 +777777760000 ? 000037777777 ? 400000000007 ? 777000000000 ? 000177760000 ? 000000007777 +600000000000 ? 177774000000 ? 000007777740 ? 000000000177 ? 777000000000 ? 007777770000 +000000177777 ? 600000000007 ? 777776000000 ? 000177777740 ? 000000007777 ? 777400000000 +177777770000 ? 000007777777 ? 700000000177 ? 777776000000 ? 007777777760 ? 000000177777 +777400000007 ? 777777774000 ? 000177777777 ? 700000007777 ? 777777000000 ? 177777777760 +000003000000 ? 001400000060 ? 000000030000 ? 001400000000 ? 600000037777 ? 777774000000 +777777777700 ? 000017777777 ? 776000000377 ? 777777740000 +; PLUS 6 ZEROES TELESCOPED INTO NEXT CHAR + +146C: +REPEAT 12, 0 +000014000000 ? 000000000740 +000000000000 ? 037400000000 ? 000001774000 ? 000000000077 ? 740000000000 ? 003777400000 +000000177774 ? 000000000007 ? 777600000000 ? 000177770000 ? 000000007777 ? 400000000000 +177760000000 ? 000003777014 ? 000000000177 ? 741700000000 ? 003777177000 ? 000000077777 +760000000001 ? 777777400000 ? 000037777770 ? 000000000377 ? 777400000000 ? 007777770000 +000000177477 ? 600000000003 ? 771774000000 ? 000077007700 ? 000000000760 ? 174000000000 +017717700000 ? 000000376376 ? 000000000007 ? 747740000000 ? 000077776000 ? 000000001777 +740000000000 ? 037777000000 ? 000000377740 ? 000000000007 ? 777000000000 ? 000077740000 +000000001777 ? 000000000000 ? 017740000000 ? 000000377000 ? 000000000003 ? 740000000000 +000077000000 ? 000077777777 ? 777400001777 ? 777777770000 +; PLUS 6 ZEROES TELESCOPED INTO NEXT CHAR + +150C: +REPEAT 15, 0 +700000000000 ? 000017400000 ? 000000000376 ? 000000000000 ? 003770000000 +000000077740 ? 000000000003 ? 777400000000 ? 000177774000 ? 000000007777 ? 740000000000 +363777400000 ? 000017577774 ? 000000000777 ? 777700000000 ? 037777777000 ? 000000777777 +770000000037 ? 777777700000 ? 001777777776 ? 000000077777 ? 777760000001 ? 777777777400 +000077776777 ? 774000001777 ? 607777700000 ? 073770177777 ? 000001777003 ? 777760000017 +600177777400 ? 000160007777 ? 774000000000 ? 377777700000 ? 000017777776 ? 000000001777 +777760000000 ? 077777777400 ? 000007777777 ? 770000000377 ? 777777600000 ? 017777777774 +000001777777 ? 777700000077 ? 777777776000 ? 003777777777 ? 740000140000 ? 000003000003 +000000000060 ? 000077777777 ? 777400001777 ? 777777770000 +; PLUS 6 ZEROES TELESCOPED INTO NEXT CHAR + +152C: +REPEAT 22, 0 +000000001400 ? 000000000000 ? 176000000000 ? 000017770000 ? 000000000777 ? 700000000000 +017776000000 ? 000000777760 ? 000000000017 ? 777400000000 ? 000777774000 ? 000000017777 +700000000000 ? 177774000000 ? 000003777700 ? 000000000037 ? 774000000000 ? 000777700000 +000000007774 ? 000000000000 ? 077600000000 ? 000001774000 ? 000000000037 ? 700000000000 +001777000000 ? 000000037760 ? 000000000000 ? 777400000000 ? 000017770000 ? 000000000777 +700000000000 ? 017776000000 ? 000000377740 ? 000000000007 ? 777000000000 ? 000777774000 +000000077777 ? 760000000007 ? 777777700000 ? 000760000017 ? 400000036000 ? 000074000000 +777777777700 ? 000017777777 ? 776000000377 ? 777777740000 +REPEAT 6, 0