99: 99 .ORG ;load the following code at this address 99: 0xBF H 4-35 ;halt: prevent previous prog from running into this ; ; Initialize. ; 100: 6 0x11 PAGE 4- 4 ;seven active pages of memory: pp. 2-7 to 2-13 102: 0 0xF1 DI 4-17 ;turn off display of disc location 104: 0x8C SCM 4-31 ;set chapter mode 105: 0x2C CLD 4-19 ;clear display, all 12 lines 106: 0xE0 CGE 4-17 ;character generator enable 107: 22 0xF7 SC 4-24 ;clear screen by searching to 1st frame of Venus ; ; Display the instruction screen. ; 110: 12 0x08 GET 4-38 ;r4 = number of lines to go 113: 4 0x09 PUT 4-39 115: I(252) 0x08 GET 4-38 ;r5 = address of 0th char in 0th line 119: 5 0x09 PUT 4-39 121: L1: 121: 12 0x08 GET 4-38 ;r0 = total number of lines to display 124: 4 ARG 0x03 SUB 4-36 ;r0 = number of next line to display 127: 5 0x7F RC 4-39 ;activate r5 129: 0 ARG 0x2B SUD 4-19 ;set user display 132: 5 ARG 0x08 GET 4-38 ;r5 = address of next line 135: 20 0x02 ADD 4-36 138: 5 0x09 PUT 4-39 140: 4 0xF0 DR 4-42 ;decrement r4 142: L1(121)0xCF BR 4-33 ;branch back to top of loop if r4 still > 0 ; ; Erase the instructions. ; 146: W(230) 0x0B JMP 4-34 ;wait till user presses 0 150: 0x2C CLD 4-19 ;clear all 12 lines of display ; ; Display and hide rotating earth when we see big word "ROTATION" ; 151: W(230) 0x0B JMP 4-34 ;wait till user presses 0 155: 7 0xF7 SC 4-24 ;start playing chapter 7 (earth rotating) 157: 0xFD P 4-22 158: W(230) 0x0B JMP 4-34 ;wait till user presses 0 162: B(492) 0x0B JMP 4-34 ;blacken the screen ; ; Display and hide day and night when Indy uses melon ; to explain rotation of earth ("facing away from the sun"). ; 166: W(230) 0x0B JMP 4-34 ;wait till user presses 0 170: 12 0xF7 SC 4-24 ;start playing chapter 12 (day and night) 173: 0xFD P 4-22 174: W(230) 0x0B JMP 4-34 ;wait till user presses 0 178: B(492) 0x0B JMP 4-34 ;blacken the screen ; ; Glimpse the Sun. ; ("Pay attention because we're going to move fast.") ; 182: W(230) 0x0B JMP 4-34 ;wait till user presses 0 186: 25 0xF7 SC 4-24 ;start playing chapter 25 (Sun) 189: 0xFD P 4-22 ; ; Glimpse Mercury, Venus, Earth, Mars, (skip the asteroids,) Jupiter, Saturn. ; 190: 6 0x08 GET 4-38 ;r9 = number of planets to visit 192: 9 0x09 PUT 4-39 194: L2: 194: W(230) 0x0B JMP 4-34 ;wait till user presses 0 198: B(492) 0x0B JMP 4-34 ;blacken the screen 202: 3451 0x08 GET 4-38 ;# of register holding chapter # of Saturn - 1 207: 9 ARG 0x02 ADD 4-36 ;r0 = # of register holding chapter # of planet 210: 0 ARG ARG 0xF7 SC 4-24;start playing the planet's chapter 214: 0xFD P 4-22 215: 9 0xF0 DR 4-42 ;decrement r9 217: L2(194)0xCF BR 4-33 ;branch back to top of loop if r9 still > 0 ; ; End of program ; 221: W(230) 0x0B JMP 4-34 ;wait till user presses 0 225: B(492) 0x0B JMP 4-34 ;blacken the screen to erase Saturn 229: 0xBF H 4-35 ;halt the program; return to manual mode ; ; Subroutine to wait for keystroke ; ; On entry: r1 = return address ; On exit: no register changed. ; 230: W: 230: 1 0xF8 IN 4-48 ;wait for input 232: 1 ARG 0xCF BR 4-33 ;return from subroutine when 0 is pressed 235: W(230) 0xCF BR 4-33 ;keep looping until digit received ; ; Chapter numbers ; 240: 240 .ORG 240: 0x0015 .DW ;Chap 21, reg 3457 = INT((7155 - 240) / 2) Mercury 242: 0x0016 .DW ;Chap 22, reg 3456 Venus 244: 0x0008 .DW ;Chap 8, reg 3455 Earth 246: 0x0017 .DW ;Chap 23, reg 3454 Mars 248: 0x001B .DW ;Chap 27, reg 3453 Jupiter 250: 0x001C .DW ;Chap 28, reg 3452 = INT((7155 - 250) / 2) Saturn ; ; Instruction screen ; The top line is used by the player, leaving us with 11 lines of 20 chars, ; 252: I: ; 01234567890123456789 252: " " .DS x20 x20 x20 x20 x20 x20 x20 x20 x20 x20 x20 x20 x20 x20 x20 x20 x20 x20 x20 x20 272: "-OUR PLACE IN SPACE-" .DS x2D x4F x55 x52 x20 x50 x4C x41 x43 x45 x20 x49 x4E x20 x53 x50 x41 x43 x45 x2D 292: "Disc 4.Keep pressing" .DS x44 x69 x73 x63 x20 x34 x2E x4B x65 x65 x70 x20 x70 x72 x65 x73 x73 x69 x6E x67 312: "0 on LD remote.The 0" .DS x30 x20 x6F x6E x20 x4C x44 x20 x72 x65 x6D x6F x74 x65 x2E x54 x68 x65 x20 x30 332: "after Saturn halts " .DS x61 x66 x74 x65 x72 x20 x53 x61 x74 x75 x72 x6E x20 x68 x61 x6C x74 x73 x20 x20 352: "the program,leavingU" .DS x74 x68 x65 x20 x70 x72 x6F x67 x72 x61 x6D x2C x6C x65 x61 x76 x69 x6E x67 x55 372: "@Chap22.4early halt," .DS x40 x43 x68 x61 x70 x32 x32 x2E x34 x65 x61 x72 x6C x79 x20 x68 x61 x6C x74 x2C 392: "CLR/HALT; if text or" .DS x43 x4C x52 x2F x48 x41 x4C x54 x3B x20 x69 x66 x20 x74 x65 x78 x74 x20 x6F x72 412: "black overlay per- " .DS x62 x6C x61 x63 x6B x20 x6F x76 x65 x72 x6C x61 x79 x20 x70 x65 x72 x2D x20 x20 432: "sist,power LD down &" .DS x73 x69 x73 x74 x2C x70 x6F x77 x65 x72 x20 x4C x44 x20 x64 x6F x77 x6E x20 x26 452: "up. Occupies100-861," .DS x75 x70 x2E x20 x4F x63 x63 x75 x70 x69 x65 x73 x31 x30 x30 x2D x38 x36 x31 x2C 472: "overwrites6896-7155." .DS x6F x76 x65 x72 x77 x72 x69 x74 x65 x73 x36 x38 x39 x36 x2D x37 x31 x35 x35 x2E ; 01234567890123456789 ; ; Subroutine to fill the display with "black blocks" ; Simple version. ; ; On entry: r1 = return address ; On exit: destroys r0, r3, r4, r5, r6, active reg ptr ; 492: B: 492: 1 ARG 0x08 GET 4-38 ;save the return address 495: 6 0x09 PUT 4-39 497: 10 0x7F RC 4-39 ;activate lowest numbered reg in overwrite area 500: 120 0x08 GET 4-38 ;r0 = # of pairs of chars to go: 12 * 20 / 2 504: L3: 504: 8224 0xF5 ST 4-44 ;store 0x2020 into active reg; inc active reg ptr 509: 0xF0 DR 4-42 ;decrement r0 510: L3(504)0xCF BR 4-33 ;branch if not zero 514: 120 0x08 GET 4-38 518: 5 0x09 PUT 4-39 ;r5 = # of pairs of chars to go: 12 * 20 / 2 520: L4: ; ; Get random pair of numbers, each in range 0 to 12 * 20 / 2 - 1 inclusive. ; 520: 5 ARG 0x08 GET 4-38 523: 3217 0x02 ADD 4-36 ;lowest numbered reg in random area - 1 528: 0 ARG ARG 0x08 GET 4-38 532: 256 0x21 DIV 4-37 ;quotient in r0, remainder in r3 536: 4 0x09 PUT 4-39 ;save quotient 538: 129 0x08 GET 4-38 ;highest numbered reg in overwrite area 542: 4 ARG 0x03 SUB 4-36 545: 0 ARG 0x7F RC 4-39 548: 32382 0xF5 ST 4-44 ;0x7E7E: pair of black blocks (16705 for 0x4141) 554: 129 0x08 GET 4-38 ;highest numbered reg in overwrite area 558: 3 ARG 0x03 SUB 4-36 561: 0 ARG 0x7F RC 4-39 564: 32382 0xF5 ST 4-44 ;0x7E7E: pair of black blocks (16705 for 0x4141) ; Save line number in r4 570: 3 ARG 0x08 GET 4-38 573: 10 0x21 DIV 4-37 576: 4 0x09 PUT 4-39 ; Compute address of 0th character on line 578: 20 0x22 MUL 4-37 581: 6896 0x02 ADD 4-36 ;address of 0th character in overwrite area ; ; Display the line. ; 586: 0 0x7F RC 4-39 ;activate r0 588: 4 ARG 0x2B SUD 4-19 ;set user display 591: 0xFF NE 4-35 ;no entry: 1/60 sec 592: 0xFF NE 4-35 ;no entry: 1/60 sec 593: 5 0xF0 DR 4-42 ;decrement and branch 595: L4(520)0xCF BR 4-33 599: 6 ARG 0xCF BR 4-33 ;return from subroutine ; ; Random permutation of the integers in the range 0 to 12*20/2-1 inclusive. ; Occupies addresses 602 to 721 inclusive (regs 3276 to 3217 inclusive). ; Each pair of numbers is on the same line. ; ; 3276 = INT((7155 - 602) / 2) ; 3217 = INT((7155 - 721) / 2) ; 602: 602 .ORG 602: 110 117 44 41 45 40 1 6 36 38 .DB x6E x75 x2C x29 x2D x28 x01 x06 x24 x26 612: 31 32 78 76 118 111 22 23 71 79 .DB x1F x20 x4E x4C x76 x6F x16 x17 x47 x4F 622: 77 72 35 30 26 25 65 66 2 0 .DB x4D x48 x23 x1E x1A x19 x41 x42 x02 x00 632: 85 83 116 113 80 87 88 81 28 21 .DB x55 x53 x74 x71 x50 x57 x58 x51 x1C x15 642: 49 43 10 12 42 47 56 58 95 97 .DB x31 x2B x0A x0C x2A x2F x38 x3A x5F x61 652: 48 46 7 9 59 52 50 51 54 57 .DB x30 x2E x07 x09 x3B x34 x32 x33 x36 x39 662: 16 13 67 63 55 53 104 103 74 73 .DB x10 x0D x43 x3F x37 x35 x68 x67 x4A x49 672: 37 33 70 75 8 4 98 93 96 90 .DB x25 x21 x46 x4B x08 x04 x62 x5D x60 x5A 682: 39 34 92 94 91 99 19 14 5 3 .DB x27 x22 x5C x5E x5B x63 x13 x0E x05 x03 692: 64 61 100 106 68 60 18 11 108 101 .DB x40 x3D x64 x6A x44 x3C x12 x0B x6C x65 702: 86 82 84 89 109 107 29 20 112 115 .DB x56 x52 x54 x59 x6D x6B x1D x14 x70 x73 712: 119 114 105 102 27 24 69 62 15 17 .DB x77 x72 x69 x66 x1B x18 x45 x3E x0F x11 ; ; Subroutine to fill the display with "black blocks" ; Next-to-simplest version. ; ; On entry: r1 = return address ; On exit: destroys r0, r3, r4, r5, r6, r7, r8, active reg ptr ; 722: C: 722: 1 ARG 0x08 GET 4-38 ;save the return address 725: 6 0x09 PUT 4-39 727: 10 0x7F RC 4-39 ;activate lowest numbered reg in overwrite area 730: 120 0x08 GET 4-38 ;r0 = # of pairs of chars to go: 12 * 20 / 2 734: L7: 734: 8224 0xF5 ST 4-44 ;store 0x2020 into active reg; inc active reg ptr 739: 0xF0 DR 4-42 ;decrement r0 740: L7(734)0xCF BR 4-33 ;branch if not zero 744: 120 0x08 GET 4-38 748: 5 0x09 PUT 4-39 ;r5 = # of pairs of chars to go: 12 * 20 / 2 750: L8: ; ; Get random pair of numbers, each in range 0 to 12 * 20 / 2 - 1 inclusive. ; 750: 5 ARG 0x08 GET 4-38 753: 3089 0x02 ADD 4-36 ;lowest numbered reg in random area - 1 758: 0 ARG ARG 0x08 GET 4-38 762: 256 0x21 DIV 4-37 ;quotient in r0, remainder in r3 766: 7 0x09 PUT 4-39 ;save quotient 768: 3 ARG 0x08 GET 4-38 771: 8 0x09 PUT 4-39 ;save remainder 773: 129 0x08 GET 4-38 ;highest numbered reg in overwrite area 777: 7 ARG 0x03 SUB 4-36 780: 0 ARG 0x7F RC 4-39 783: 32382 0xF5 ST 4-44 ;0x7E7E: pair of black blocks (16705 for 0x4141) ; Save line number in r4 789: 7 ARG 0x08 GET 4-38 792: 10 0x21 DIV 4-37 795: 4 0x09 PUT 4-39 ; Compute address of 0th character on line 797: 20 0x22 MUL 4-37 800: 6896 0x02 ADD 4-36 ;address of 0th character in overwrite area ; ; Display the line. ; 805: 0 0x7F RC 4-39 ;activate r0 807: 4 ARG 0x2B SUD 4-19 ;set user display 810: 129 0x08 GET 4-38 ;highest numbered reg in overwrite area 814: 8 ARG 0x03 SUB 4-36 817: 0 ARG 0x7F RC 4-39 820: 32382 0xF5 ST 4-44 ;0x7E7E: pair of black blocks (16705 for 0x4141) ; Save line number in r4 826: 8 ARG 0x08 GET 4-38 829: 10 0x21 DIV 4-37 832: 4 0x09 PUT 4-39 ; Compute address of 0th character on line 834: 20 0x22 MUL 4-37 837: 6896 0x02 ADD 4-36 ;address of 0th character in overwrite area ; ; Display the line. ; 842: 0 0x7F RC 4-39 ;activate r0 844: 4 ARG 0x2B SUD 4-19 ;set user display 847: 0xFF NE 4-35 ;no entry: 1/60 sec 848: 0xFF NE 4-35 ;no entry: 1/60 sec 849: 5 0xF0 DR 4-42 ;decrement and branch 851: L8(750)0xCF BR 4-33 855: 6 ARG 0xCF BR 4-33 ;return from subroutine ; ; Random permutation of the integers in the range 0 to 12*20/2-1 inclusive. ; Occupies addresses 858 to 977 inclusive (regs 3148 to 3089 inclusive). ; ; 3148 = INT((7155 - 858) / 2) ; 3089 = INT((7155 - 977) / 2) ; 858: 858 .ORG 858: 93 18 58 48 24 59 63 10 80 115 .DB x5D x12 x3A x30 x18 x3B x3F x0A x50 x73 868: 101 20 40 104 31 81 9 6 30 92 .DB x65 x14 x28 x68 x1F x51 x09 x06 x1E x5C 878: 72 98 36 27 47 83 100 114 86 11 .DB x48 x62 x24 x1B x2F x53 x64 x72 x56 x0B 888: 29 21 3 4 110 84 22 67 74 102 .DB x1D x15 x03 x04 x6E x54 x16 x43 x4A x66 898: 87 41 105 46 52 39 19 75 103 33 .DB x57 x29 x69 x2E x34 x27 x13 x4B x67 x21 908: 94 7 88 50 61 70 116 107 77 15 .DB x5E x07 x58 x32 x3D x46 x74 x6B x4D x0F 918: 42 78 53 118 68 111 14 55 76 51 .DB x2A x4E x35 x76 x44 x6F x0E x37 x4C x33 928: 96 91 117 106 71 25 64 89 99 35 .DB x60 x5B x75 x6A x47 x19 x40 x59 x63 x23 938: 34 44 85 56 28 66 95 112 73 113 .DB x22 x2C x55 x38 x1C x42 x5F x70 x49 x71 948: 5 12 119 23 2 37 90 38 0 79 .DB x05 x0C x77 x17 x02 x25 x5A x26 x00 x4F 958: 62 32 65 60 43 13 82 16 108 69 .DB x3E x20 x41 x3C x2B x0D x52 x10 x6C x45 968: 109 17 26 49 45 57 8 1 54 97 .DB x6D x11 x1A x31 x2D x39 x08 x01 x36 x61 ; ; Subroutine to fill the display with "black blocks" ; ; Hide the video picture by filling the text display (12 lines of 20 charrs) ; with black blocks (p. D-1, code 0x7E) in a random order. ; There's no other way for a program to fade out the picture. ; Then search to the first frame of chapter 22 (Venus), which is all black, ; and clear the text. ; ; On entry: r1 = return address ; On exit: destroys r0, r1, r3, r4, r5, r6, r7, r8, active register pointer ; 978: D: 978: 1 ARG 0x08 GET 4-38 ;save the return address 981: 6 0x09 PUT 4-39 983: 10 0x7F RC 4-39 ;activate lowest numbered reg in overwrite area 986: 120 0x08 GET 4-38 ;r0 = # of pairs of chars to go: 12 * 20 / 2 990: L5: 990: 8224 0xF5 ST 4-44 ;store 0x2020 into active reg; inc active reg ptr 995: 0xF0 DR 4-42 ;decrement r0 996: L5(990)0xCF BR 4-33 ;branch if not zero 1000: 120 0x08 GET 4-38 ;r7 = # of pairs of chars to go: 12 * 20 / 2 1004: 7 0x09 PUT 4-39 1006: L6: 1006: 7 ARG 0x08 GET 4-38 ;r0 = # of pairs of chars to go 1009: 3031 0x02 ADD 4-36 ;add lowest numbered reg in random area - 1 1014: 0 ARG ARG 0x08 GET 4-38;get two random numbers 1018: 256 0x21 DIV 4-37 ;r0 = quotient, r3 = remainder 1022: 8 0x09 PUT 4-39 ;save quotent 1024: 3 ARG 0x08 GET 4-38 ;get remainder 1027: OV(1053)0x0B JMP 4-34;overwrite one blank 1032: 8 ARG 0x08 GET 4-38 ;get quotient 1035: OV(1053)0x0B JMP 4-34;overwrite one blank 1040: 0xFF NE 4-35 ;no entry: 1/60 sec 1041: 7 0xF0 DR 4-42 ;decrement r7 1043: L6(1006)0xCF BR 4-33;branch if not zero 1048: 22 0xF7 SC 4-24 ;search to first frame of Venus (all black) 1051: 0x2C CLD 4-19 ;clear display 1052: 6 ARG 0xCF BR 4-33 ;return from subroutine ; ; Subroutine to change one blank (0x20) to a black block (0x7E, p. D-1) ; in the overwrite area by adding 0x7E - 0x20 = 0x5E. ; ; On entry: r0 = character index (0 to 12 * 20 - 1 inclusive) ; On exit: r1 = return address ; 1055: OV: 1055: 4 0x09 PUT 4-39 ;save character index 1057: 2 0x21 DIV 4-37 ;r5 = word index 1059: 5 0x09 PUT 4-39 1061: 129 0x08 GET 4-38 ;highest numbered reg in overwrite area 1065: 5 ARG 0x03 SUB 4-36 ;r0 = # of register holding affected char 1068: 5 0x09 PUT 4-39 ;save in r5 1070: 3 ARG 0x08 GET 4-38 ;fetch remainder (0 or 1) 1073: 23970 0x22 MUL 4-37 ;multiply by 0x5E00 - 0x005E; use 08415 for 'A' 1079: 94 0x02 ADD 4-36 ;add 0x5E; use 33 for 'A' 1082: 5 ARG ARG 0x02 ADD 4-36;add existing pair of characters 1086: 5 ARG 0x09 PUT 4-39 ;overwrite existing pair of characters 1089: 4 ARG 0x08 GET 4-38 ;r5 = line number 1092: 20 0x21 DIV 4-37 1095: 5 0x09 PUT 4-39 1097: 20 0x22 MUL 4-37 ;r0 = address of 0th char in modified line 1100: 6896 0x02 ADD 4-36 1105: 0 0x7F RC 4-39 ;activate r0 1107: 5 ARG 0x2B SUD 4-19 ;set user display 1110: 1 ARG 0xCF BR 4-33 ;return from subroutine ; ; Random permutation of the integers in the range 0 to 12 * 20 - 1 inclusive. ; Occupies addresses 1114 to 1353 inclusive (regs 3020 to 2901 inclusive). ; 3020 = INT((7155 - 1114) / 2) ; 2901 = INT((7155 - 1353) / 2) ; 1114: 1114 .ORG 1114: 91 189 36 103 155 209 104 206 175 181 .DB x5B xBD x24 x67 x9B xD1 x68 xCE xAF xB5 1124: 220 39 53 86 18 203 114 211 75 27 .DB xDC x27 x35 x56 x12 xCB x72 xD3 x4B x1B 1134: 239 235 23 205 118 123 4 140 67 73 .DB xEF xEB x17 xCD x76 x7B x04 x8C x43 x49 1144: 197 147 183 54 192 9 105 20 80 133 .DB xC5 x93 xB7 x36 xC0 x09 x69 x14 x50 x85 1154: 98 153 190 224 151 6 164 97 132 32 .DB x62 x99 xBE xE0 x97 x06 xA4 x61 x84 x20 1164: 108 92 110 162 145 194 182 100 178 129 .DB x6C x5C x6E xA2 x91 xC2 xB6 x64 xB2 x81 1174: 165 42 49 85 142 101 109 131 3 174 .DB xA5 x2A x31 x55 x8E x65 x6D x83 x03 xAE 1184: 31 221 99 5 208 43 230 66 226 61 .DB x1F xDD x63 x05 xD0 x2B xE6 x42 xE2 x3D 1194: 30 11 34 68 168 216 83 125 62 169 .DB x1E x0B x22 x44 xA8 xD8 x53 x7D x3E xA9 1204: 186 60 227 198 149 146 116 90 28 172 .DB xBA x3C xE3 xC6 x95 x92 x74 x5A x1C xAC 1214: 199 176 24 177 161 166 46 236 81 229 .DB xC7 xB0 x18 xB1 xA1 xA6 x2E xEC x51 xE5 1224: 63 152 219 159 33 84 12 124 188 96 .DB x3F x98 xDB x9F x21 x54 x0C x7C xBC x60 1234: 196 202 179 93 173 45 160 223 0 215 .DB xC4 xCA xB3 x5D xAD x2D xA0 xDF x00 xD7 1244: 71 207 115 14 106 47 167 113 122 136 .DB x47 xCF x73 x0E x6A x2F xA7 x71 x7A x88 1254: 48 218 38 139 137 88 232 10 15 141 .DB x30 xDA x26 x8B x89 x58 xE8 x0A x0F x8D 1264: 128 89 217 64 58 65 222 158 13 102 .DB x80 x59 xD9 x40 x3A x41 xDE x9E x0D x66 1274: 127 77 138 16 37 57 8 17 135 204 .DB x7F x4D x8A x10 x25 x39 x08 x11 x87 xCC 1284: 157 130 25 213 79 225 44 119 29 212 .DB x9D x82 x19 xD5 x4F xE1 x2C x77 x1D xD4 1294: 35 87 150 154 2 184 214 121 111 200 .DB x23 x57 x96 x9A x02 xB8 xD6 x79 x6F xC8 1304: 78 51 7 40 82 1 94 126 19 72 .DB x4E x33 x07 x28 x52 x01 x5E x7E x13 x48 1314: 170 21 234 59 180 237 120 107 22 56 .DB xAA x15 xEA x3B xB4 xED x78 x6B x16 x38 1324: 112 191 228 201 41 233 143 95 171 195 .DB x70 xBF xE4 xC9 x29 xE9 x8F x5F xAB xC3 1334: 231 148 55 76 210 26 193 144 156 187 .DB xE7 x94 x37 x4C xD2 x1A xC1 x90 x9C xBB 1344: 185 50 238 163 70 69 117 74 134 52 .DB xB9 x32 xEE xA3 x46 x45 x75 x4A x86 x34 ; ; Overwrite area, 12 lines of 20 characters. ; Located at the end of memory immediately before the registers. ; ; Line 0 occupies registers 129 (addr 6896-6897) to 120 (addr 6914-6915). ; Line 11 occupies registers 19 (addr 7116-7117) to 10 (addr 7134-7135). ; ; ; Registers ; ; Register 9 occupies addresses 7136-7137. ; Register 8 occupies addresses 7138-7139. ; Register 7 occupies addresses 7140-7141. ; Register 6 occupies addresses 7142-7143. ; Register 5 occupies addresses 7144-7145. ; Register 4 occupies addresses 7146-7147. ; Register 3 occupies addresses 7148-7149. ; Register 2 occupies addresses 7150-7151. ; Register 1 occupies addresses 7152-7153. ; Register 0 occupies addresses 7154-7155 (the end of memory). ;