Variables: Ar2(1): loop counter Ar2(2): current start address Ar2(3): $ffff (?) Ar2(4): current block address Numeric constants: lbl_0006: $0 lbl_0007: $1 lbl_0008: $2 lbl_0009: $3 lbl_0013: $7 lbl_0015: $9 lbl_0016: $a lbl_0017: $b lbl_0019: $d lbl_0034: $20 lbl_0043: $30 lbl_0047: $40 lbl_0057: $ffff lbl_0062: $fffa lbl_0064: $fff8 lbl_0070: $fff0 lbl_0107: $1000 lbl_0111: $7fff lbl_0112: $8000 lbl_0115: $c000 lbl_0116: $f000 OS vector constants: lbl_0126: $efd6 (system variable) lbl_0281: $1928 (system subroutine) Other constants lbl_5593: $fffd lbl_5637: $efd0 lbl_5638: $7000 lbl_5639: $7fef lbl_5640: $aaaa lbl_5641: $5555 local subroutine: takes start address in B, end address in A, block number in Adr2(4). Switches upper block and upper half of base page to block number, writes zeros to the area between start address and end address, then restores upper block to block 0 and upper half of base page to block 1. '(U' 7a56 2855 lbl_5595: ADB lbl_0057 (=ffff) ! Add location content to register B '8 ' 7a57 380e STB C ! Store content of register B to location ' ' 7a58 0813 LDB Ar2(4) ! Load register B with location content '8 ' 7a59 381e STB R_36 ! Store content of register B to location '8 ' 7a5a 381a STB R_32 ! Store content of register B to location ' "' 7a5b 0822 LDB lbl_0006 (=0000) ! Load register B with location content 'qa' 7a5c 7161 lbl_5596: PWC B,I ! Pushes register content (full word) onto C stack ' ' 7a5d 100e CPA C ! Skips if A and location content differ 'l ' 7a5e 6c02 JMP lbl_5597 ! Unconditional branch to location 'o ' 7a5f 6ffd JMP lbl_5596 ! Unconditional branch to location ' #' 7a60 0023 lbl_5597: LDA lbl_0007 (=0001) ! Load register A with location content '0 ' 7a61 301e STA R_36 ! Store content of register A to location ' "' 7a62 0022 LDA lbl_0006 (=0000) ! Load register A with location content '0 ' 7a63 301a STA R_32 ! Store content of register A to location ' ' 7a64 f081 RET 1 ! Returns from subroutine, n is added to JSM addr RAM check entry (program start) 'q ' 7a65 7118 lbl_5598: DIR ! Disables interrupts ' -' 7a66 002d LDA lbl_0017 (=000b) ! Load register A with location content '0 ' 7a67 3003 STA R ! Store content of register A to location test #1: test PPU RAM block (only 16k words) select block 0 as upper data block and initialize $efd6 to 0 ' "' 7a68 0022 LDA lbl_0006 (=0000) ! Load register A with location content '0 ' 7a69 301a STA R_32 ! Store content of register A to location ' #' 7a6a 0023 LDA lbl_0007 (=0001) ! Load register A with location content ' ' 7a6b b09a STA lbl_0126,I (=efd6) ! Store content of register A to location ' ' 7a6c b09a STA lbl_0126,I (=efd6) ! Store content of register A to location select block 1 as both upper data block and upper half of base page & store 1 in Ar2(4) ' #' 7a6d 0023 LDA lbl_0007 (=0001) ! Load register A with location content '0 ' 7a6e 3013 STA Ar2(4) ! Store content of register A to location '0 ' 7a6f 301e STA R_36 ! Store content of register A to location '0 ' 7a70 301a STA R_32 ! Store content of register A to location initialize R_10 and $fffe to 0, and Ar2(2) to $c000 ' "' 7a71 0022 LDA lbl_0006 (=0000) ! Load register A with location content '0 ' 7a72 3008 STA R_10 ! Store content of register A to location ' "' 7a73 0022 LDA lbl_0006 (=0000) ! Load register A with location content '3 ' 7a74 33fe STA fffe ! Store content of register A to location ' ' 7a75 008f LDA lbl_0115 (=c000) ! Load register A with location content '0 ' 7a76 3011 STA Ar2(2) ! Store content of register A to location select $c000-1 (=$bfff) as start address and store it into D (pointer for write stack) ' ' 7a77 0011 LDA Ar2(2) ! Load register A with location content ' U' 7a78 2055 ADA lbl_0057 (=ffff) ! Add location content to register A '0 ' 7a79 300f STA D ! Store content of register A to location select $c000+3 as loopcount start ' ' 7a7a 0011 LDA Ar2(2) ! Load register A with location content ' %' 7a7b 2025 ADA lbl_0009 (=0003) ! Add location content to register A select $aaaa as test pattern and write pattern to the memory area from $c000 up to $fffe ' ' 7a7c 0d1a LDB lbl_5640 (=aaaa) ! Load register B with location content 'qi' 7a7d 7169 lbl_5599: PWD B,I ! Pushes register content (full word) onto D stack 't ' 7a7e 747f RIA *-1 (lbl_5599) ! Skips if register A is not 0, then increments A pause ' ' 7a7f 0090 LDA lbl_0116 (=f000) ! Load register A with location content 't@' 7a80 7440 lbl_5600: RIA *+0 (lbl_5600) ! Skips if register A is not 0, then increments A store $c000 into C (read stack), $bfff into D (write stack) and $c000+2 into Ar2(1) (counter) ' ' 7a81 0011 LDA Ar2(2) ! Load register A with location content '0 ' 7a82 300e STA C ! Store content of register A to location ' ' 7a83 0011 LDA Ar2(2) ! Load register A with location content ' U' 7a84 2055 ADA lbl_0057 (=ffff) ! Add location content to register A '0 ' 7a85 300f STA D ! Store content of register A to location ' ' 7a86 0011 LDA Ar2(2) ! Load register A with location content ' $' 7a87 2024 ADA lbl_0008 (=0002) ! Add location content to register A '0 ' 7a88 3010 STA Ar2(1) ! Store content of register A to location select $5555 as test pattern ' ' 7a89 050e LDA lbl_5641 (=5555) ! Load register A with location content compare memory block content against pattern $5555 ' ' 7a8a 880e lbl_5601: LDB C,I ! Load B from read stack (content of $c000) 'qh' 7a8b 7168 PWD A,I ! Increment write stack & write $5555 to write stack 'qp' 7a8c 7170 WWC A,I ! Read A from read stack & increment read stack '( ' 7a8d 2800 ADB A ! Add A to B ' ' 7a8e 1509 CPA lbl_5641 (=5555) ! Skips if A is not $5555 'H ' 7a8f 4801 ISZ B ! Increments B & skips if zero 'l7' 7a90 6c37 JMP lbl_5609 ! Jump to error handling 'H ' 7a91 4810 ISZ Ar2(1) ! Increment loop counter & leave loop if zero 'o ' 7a92 6ff8 JMP lbl_5601 ! loop pause ' ' 7a93 0090 LDA lbl_0116 (=f000) ! Load register A with location content 't@' 7a94 7440 lbl_5602: RIA *+0 (lbl_5602) ! Skips if register A is not 0, then increments A load $c002 into loop counter ' ' 7a95 0011 LDA Ar2(2) ! Load register A with location content ' $' 7a96 2024 ADA lbl_0008 (=0002) ! Add location content to register A '0 ' 7a97 3010 STA Ar2(1) ! Store content of register A to location select $aaaa as test pattern ' ' 7a98 04fe LDA lbl_5640 (=aaaa) ! Load register A with location content compare memory block content against pattern $aaaa ' ' 7a99 880f lbl_5603: LDB D,I ! Load register B with location content 'q ' 7a9a 71e0 PWC A,D ! Pushes register content (full word) onto C stack 'q ' 7a9b 71f8 WWD A,D ! Withdraws full word from D stack into register '( ' 7a9c 2800 ADB A ! Add location content to register B ' ' 7a9d 14f9 CPA lbl_5640 (=aaaa) ! Skips if A and location content differ 'H ' 7a9e 4801 ISZ B ! Increments location content & skips if zero 'l+' 7a9f 6c2b JMP lbl_5610 ! Unconditional branch to location 'H ' 7aa0 4810 ISZ Ar2(1) ! Increments location content & skips if zero 'o ' 7aa1 6ff8 JMP lbl_5603 ! Unconditional branch to location clean PPU RAM block 1, prepare test for LPU memory blocks (32k each), starting with block 0 ' #' 7aa2 0023 lbl_5604: LDA lbl_0007 (=0001) ! Load register A with location content '0 ' 7aa3 3013 STA Ar2(4) ! Store content of register A to location ' ' 7aa4 07b0 LDA lbl_5593 (=fffd) ! Load register A with location content ' ' 7aa5 088f LDB lbl_0115 (=c000) ! Load register B with location content 'G ' 7aa6 47b0 JSM lbl_5595 ! fills block 1 with zeros ' 5' 7aa7 c135 JSM lbl_0281,I (=1928) ! Jumps to subroutine at location ' U' 7aa8 0055 LDA lbl_0057 (=ffff) ! Load register A with location content '0 ' 7aa9 3012 STA Ar2(3) ! Store content of register A to location ' "' 7aaa 0022 LDA lbl_0006 (=0000) ! Load register A with location content '0 ' 7aab 3013 STA Ar2(4) ! Store content of register A to location '0 ' 7aac 3014 STA Se ! Store content of register A to location loop LPU RAM block test: select memory block and set start address to 0 ' ' 7aad 0013 lbl_5605: LDA Ar2(4) ! Load register A with location content '0 ' 7aae 301e STA R_36 ! Store content of register A to location '0 ' 7aaf 301a STA R_32 ! Store content of register A to location ' %' 7ab0 0025 LDA lbl_0009 (=0003) ! Load register A with location content '0 ' 7ab1 301d STA R_35 ! Store content of register A to location ' "' 7ab2 0022 LDA lbl_0006 (=0000) ! Load register A with location content '0 ' 7ab3 3011 STA Ar2(2) ! Store content of register A to location ' "' 7ab4 0022 LDA lbl_0006 (=0000) ! Load register A with location content '0 ' 7ab5 3017 STA R_27 ! Store content of register A to location '0 ' 7ab6 3015 STA R_25 ! Store content of register A to location test #2: quick test - check top down for memory installed. Double-write $ffff at page start, read again and compare result. If it compares, continue with next lower page until lowest page is done. If result does not compare, first check whether $0000 was read. If this is the case, no memory is installed and immediately skip to test #3 (lbl_5616). Otherwise print error, then continue with test #3 (lbl_5616). ' ' 7ab7 0011 lbl_5606: LDA Ar2(2) ! Load register A with location content ' ' 7ab8 2090 ADA lbl_0116 (=f000) ! Add location content to register A '0 ' 7ab9 3011 STA Ar2(2) ! Store content of register A to location ' ' 7aba f409 SAP *+9 (lbl_5607) ! Skips if register A is >= zero (bit 15 is 0) ' U' 7abb 0055 LDA lbl_0057 (=ffff) ! Load register A with location content ' ' 7abc b011 STA Ar2(2),I ! Store content of register A to location ' U' 7abd 0055 LDA lbl_0057 (=ffff) ! Load register A with location content ' ' 7abe b011 STA Ar2(2),I ! Store content of register A to location ' ' 7abf 8011 LDA Ar2(2),I ! Load register A with location content ' U' 7ac0 1055 CPA lbl_0057 (=ffff) ! Skips if A and location content differ 'o ' 7ac1 6ff6 JMP lbl_5606 ! Unconditional branch to location 't ' 7ac2 7402 RZA *+2 (lbl_5608) ! Skips if register A is not zero If quick check OK, jump to next test (lbl_5616), otherwise output error (lbl_5611) 'lD' 7ac3 6c44 lbl_5607: JMP lbl_5616 ! Unconditional branch to location ' ' 7ac4 0011 lbl_5608: LDA Ar2(2) ! Load register A with location content '0 ' 7ac5 3015 STA R_25 ! Store content of register A to location 'l ' 7ac6 6c06 JMP lbl_5611 ! Unconditional branch to location output error notification (both for $5555 and $aaaa mismatches) ' ' 7ac7 000f lbl_5609: LDA D ! Load register A with location content '0 ' 7ac8 3015 STA R_25 ! Store content of register A to location 'l ' 7ac9 6c03 JMP lbl_5611 ! Unconditional branch to location ' ' 7aca 000e lbl_5610: LDA C ! Load register A with location content '0 ' 7acb 3015 STA R_25 ! Store content of register A to location save 'bad' content into R_27, set shift extend to 1 ' ' 7acc 8015 lbl_5611: LDA R_25,I ! Load register A with location content '0 ' 7acd 3017 STA R_27 ! Store content of register A to location ' #' 7ace 0023 LDA lbl_0007 (=0001) ! Load register A with location content '0 ' 7acf 3014 STA Se ! Store content of register A to location prepare printer ' "' 7ad0 0022 LDA lbl_0006 (=0000) ! Load register A with location content '0 ' 7ad1 3009 STA Pa ! Store content of register A to location Output current test block ' ' 7ad2 0813 LDB Ar2(4) ! Load register B with location content 'D ' 7ad3 4410 JSM lbl_5613 ! Jumps to subroutine at location Output current test location ' ' 7ad4 0815 LDB R_25 ! Load register B with location content 'D ' 7ad5 440e JSM lbl_5613 ! Jumps to subroutine at location Output current test data ' ' 7ad6 8815 LDB R_25,I ! Load register B with location content 'D ' 7ad7 440c JSM lbl_5613 ! Jumps to subroutine at location Output CR/LF ' /' 7ad8 002f LDA lbl_0019 (=000d) ! Load register A with location content 'D*' 7ad9 442a JSM lbl_5614 ! Jumps to subroutine at location ' ,' 7ada 002c LDA lbl_0016 (=000a) ! Load register A with location content 'D(' 7adb 4428 JSM lbl_5614 ! Jumps to subroutine at location if current memory test block is 1, jump to lbl_5612, otherwise jump to lbl_5616 (next page) ' ' 7adc 0013 LDA Ar2(4) ! Load register A with location content ' #' 7add 1023 CPA lbl_0007 (=0001) ! Skips if A and location content differ 'l ' 7ade 6c02 JMP lbl_5612 ! Unconditional branch to location 'l(' 7adf 6c28 JMP lbl_5616 ! Unconditional branch to location set R_10 to $8000, then jump to lbl_5604 (next test) ' ' 7ae0 088c lbl_5612: LDB lbl_0112 (=8000) ! Load register B with location content '8 ' 7ae1 3808 STB R_10 ! Store content of register B to location 'o ' 7ae2 6fc0 JMP lbl_5604 ! Unconditional branch to location local subroutine: output one octal number to I/O ' >' 7ae3 003e lbl_5613: LDA lbl_0034 (=0020) ! Load register A with location content 'D ' 7ae4 441f JSM lbl_5614 ! Jumps to subroutine at location ' ' 7ae5 0001 LDA B ! Load register A with location content ' N' 7ae6 f14e SAR #f ! Right shift of register A # bits, zero-filled 'P)' 7ae7 5029 AND lbl_0013 (=0007) ! Logical 'AND' operation, result stored in A '`G' 7ae8 6047 IOR lbl_0043 (=0030) ! Logical 'OR' operation, result stored in A 'D ' 7ae9 441a JSM lbl_5614 ! Jumps to subroutine at location ' ' 7aea 0001 LDA B ! Load register A with location content ' K' 7aeb f14b SAR #c ! Right shift of register A # bits, zero-filled 'P)' 7aec 5029 AND lbl_0013 (=0007) ! Logical 'AND' operation, result stored in A '`G' 7aed 6047 IOR lbl_0043 (=0030) ! Logical 'OR' operation, result stored in A 'D ' 7aee 4415 JSM lbl_5614 ! Jumps to subroutine at location ' ' 7aef 0001 LDA B ! Load register A with location content ' H' 7af0 f148 SAR #9 ! Right shift of register A # bits, zero-filled 'P)' 7af1 5029 AND lbl_0013 (=0007) ! Logical 'AND' operation, result stored in A '`G' 7af2 6047 IOR lbl_0043 (=0030) ! Logical 'OR' operation, result stored in A 'D ' 7af3 4410 JSM lbl_5614 ! Jumps to subroutine at location ' ' 7af4 0001 LDA B ! Load register A with location content ' E' 7af5 f145 SAR #6 ! Right shift of register A # bits, zero-filled 'P)' 7af6 5029 AND lbl_0013 (=0007) ! Logical 'AND' operation, result stored in A '`G' 7af7 6047 IOR lbl_0043 (=0030) ! Logical 'OR' operation, result stored in A 'D ' 7af8 440b JSM lbl_5614 ! Jumps to subroutine at location ' ' 7af9 0001 LDA B ! Load register A with location content ' B' 7afa f142 SAR #3 ! Right shift of register A # bits, zero-filled 'P)' 7afb 5029 AND lbl_0013 (=0007) ! Logical 'AND' operation, result stored in A '`G' 7afc 6047 IOR lbl_0043 (=0030) ! Logical 'OR' operation, result stored in A 'D ' 7afd 4406 JSM lbl_5614 ! Jumps to subroutine at location ' ' 7afe 0001 LDA B ! Load register A with location content 'P)' 7aff 5029 AND lbl_0013 (=0007) ! Logical 'AND' operation, result stored in A '`G' 7b00 6047 IOR lbl_0043 (=0030) ! Logical 'OR' operation, result stored in A 'D ' 7b01 4402 JSM lbl_5614 ! Jumps to subroutine at location ' ' 7b02 f081 RET 1 ! Returns from subroutine, n is added to JSM addr local subroutine: put one word from A on R4 '} ' 7b03 7d83 lbl_5614: SSC *+3 (lbl_5615) ! Skips if peripheral status line is clear (sc in Pa) 'u ' 7b04 75bf SFC *-1 (lbl_5614) ! Skips if peripheral flag line is clear (sc in Pa) '0 ' 7b05 3004 STA R4 ! Store content of register A to location ' ' 7b06 f081 lbl_5615: RET 1 ! Returns from subroutine, n is added to JSM addr test #3: do a pattern test on the memory found. increment Ar2(2)(start address) by $1000, if start_address reaches $0000, jump to next memory block. ' ' 7b07 0011 lbl_5616: LDA Ar2(2) ! Load register A with location content ' ' 7b08 2087 ADA lbl_0107 (=1000) ! Add location content to register A '0 ' 7b09 3011 STA Ar2(2) ! Store content of register A to location ' "' 7b0a 1022 CPA lbl_0006 (=0000) ! Skips if A and location content differ 'lH' 7b0b 6c48 JMP lbl_5622 ! Unconditional branch to location fill memory block with pattern $aaaa ' ' 7b0c 0011 LDA Ar2(2) ! Load register A with location content ' U' 7b0d 2055 ADA lbl_0057 (=ffff) ! Add location content to register A '0 ' 7b0e 300f STA D ! Store content of register A to location ' ' 7b0f 0011 LDA Ar2(2) ! Load register A with location content ' #' 7b10 2023 ADA lbl_0007 (=0001) ! Add location content to register A ' ' 7b11 0c85 LDB lbl_5640 (=aaaa) ! Load register B with location content 'qi' 7b12 7169 lbl_5617: PWD B,I ! Pushes register content (full word) onto D stack 't ' 7b13 747f RIA *-1 (lbl_5617) ! Skips if register A is not 0, then increments A pause ' ' 7b14 0090 LDA lbl_0116 (=f000) ! Load register A with location content 't@' 7b15 7440 lbl_5618: RIA *+0 (lbl_5618) ! Skips if register A is not 0, then increments A prepare stack pointers C and D ' ' 7b16 0011 LDA Ar2(2) ! Load register A with location content '0 ' 7b17 300e STA C ! Store content of register A to location ' ' 7b18 0011 LDA Ar2(2) ! Load register A with location content ' U' 7b19 2055 ADA lbl_0057 (=ffff) ! Add location content to register A '0 ' 7b1a 300f STA D ! Store content of register A to location ' ' 7b1b 0011 LDA Ar2(2) ! Load register A with location content '0 ' 7b1c 3010 STA Ar2(1) ! Store content of register A to location select $5555 as test pattern ' z' 7b1d 047a LDA lbl_5641 (=5555) ! Load register A with location content compare memory page content bottom up against pattern $5555 ' ' 7b1e 880e lbl_5619: LDB C,I ! Load register B with location content 'qh' 7b1f 7168 PWD A,I ! Pushes register content (full word) onto D stack 'qp' 7b20 7170 WWC A,I ! Withdraws full word from C stack into register '( ' 7b21 2800 ADB A ! Add location content to register B ' u' 7b22 1475 CPA lbl_5641 (=5555) ! Skips if A and location content differ 'H ' 7b23 4801 ISZ B ! Increments location content & skips if zero 'o ' 7b24 6fa3 JMP lbl_5609 ! Unconditional branch to location 'H ' 7b25 4810 ISZ Ar2(1) ! Increments location content & skips if zero 'o ' 7b26 6ff8 JMP lbl_5619 ! Unconditional branch to location pause ' ' 7b27 0090 LDA lbl_0116 (=f000) ! Load register A with location content 't@' 7b28 7440 lbl_5620: RIA *+0 (lbl_5620) ! Skips if register A is not 0, then increments A restore loop counter ' ' 7b29 0011 LDA Ar2(2) ! Load register A with location content '0 ' 7b2a 3010 STA Ar2(1) ! Store content of register A to location select $aaaa as test pattern ' k' 7b2b 046b LDA lbl_5640 (=aaaa) ! Load register A with location content start reverse scan with inverse pattern ' ' 7b2c 880f lbl_5621: LDB D,I ! Load register B with location content 'q ' 7b2d 71e0 PWC A,D ! Pushes register content (full word) onto C stack 'q ' 7b2e 71f8 WWD A,D ! Withdraws full word from D stack into register '( ' 7b2f 2800 ADB A ! Add location content to register B ' f' 7b30 1466 CPA lbl_5640 (=aaaa) ! Skips if A and location content differ 'H ' 7b31 4801 ISZ B ! Increments location content & skips if zero 'o ' 7b32 6f98 JMP lbl_5610 ! Unconditional branch to location 'H ' 7b33 4810 ISZ Ar2(1) ! Increments location content & skips if zero 'o ' 7b34 6ff8 JMP lbl_5621 ! Unconditional branch to location prepare result record $fff0 to $ffff ' ' 7b35 0011 LDA Ar2(2) ! Load register A with location content 'P ' 7b36 508b AND lbl_0111 (=7fff) ! Logical 'AND' operation, result stored in A ' "' 7b37 1022 CPA lbl_0006 (=0000) ! Skips if A and location content differ ' >' 7b38 003e LDA lbl_0034 (=0020) ! Load register A with location content '0 ' 7b39 3011 STA Ar2(2) ! Store content of register A to location ' ' 7b3a 0011 LDA Ar2(2) ! Load register A with location content '3 ' 7b3b 33f0 STA fff0 ! Store content of register A to location ' Y' 7b3c 0459 LDA lbl_5639 (=7fef) ! Load register A with location content '3 ' 7b3d 33f1 STA fff1 ! Store content of register A to location ' U' 7b3e 0055 LDA lbl_0057 (=ffff) ! Load register A with location content '3 ' 7b3f 33f2 STA fff2 ! Store content of register A to location ' ' 7b40 0012 LDA Ar2(3) ! Load register A with location content '3 ' 7b41 33f3 STA fff3 ! Store content of register A to location ' ' 7b42 0013 LDA Ar2(4) ! Load register A with location content '3 ' 7b43 33f4 STA fff4 ! Store content of register A to location ' "' 7b44 0022 LDA lbl_0006 (=0000) ! Load register A with location content '3 ' 7b45 33f5 STA fff5 ! Store content of register A to location ' ' 7b46 0015 LDA R_25 ! Load register A with location content '3 ' 7b47 33f6 STA fff6 ! Store content of register A to location ' ' 7b48 0017 LDA R_27 ! Load register A with location content '3 ' 7b49 33f7 STA fff7 ! Store content of register A to location ' \' 7b4a 005c LDA lbl_0064 (=fff8) ! Load register A with location content 's ' 7b4b 7387 CLR #8 ! Clears # words pointed to by A ' ' 7b4c 0013 LDA Ar2(4) ! Load register A with location content '0 ' 7b4d 3012 STA Ar2(3) ! Store content of register A to location 'u ' 7b4e 7505 SZA *+5 (lbl_5622) ! Skips if register A is zero ' ' 7b4f 03f3 LDA fff3 ! Load register A with location content '0 ' 7b50 301e STA R_36 ! Store content of register A to location ' ' 7b51 0013 LDA Ar2(4) ! Load register A with location content '3 ' 7b52 33f2 STA fff2 ! Store content of register A to location increment memory block in steps of 2 up to block 47 (LPU memory) ' ' 7b53 0013 lbl_5622: LDA Ar2(4) ! Load register A with location content ' $' 7b54 2024 ADA lbl_0008 (=0002) ! Add location content to register A '0 ' 7b55 3013 STA Ar2(4) ! Store content of register A to location ' K' 7b56 104b CPA lbl_0047 (=0040) ! Skips if A and location content differ 'l ' 7b57 6c02 JMP lbl_5623 ! Unconditional branch to location 'oU' 7b58 6f55 JMP lbl_5605 ! Unconditional branch to location finishing ' "' 7b59 0022 lbl_5623: LDA lbl_0006 (=0000) ! Load register A with location content '0 ' 7b5a 301e STA R_36 ! Store content of register A to location ' ' 7b5b 03f0 LDA fff0 ! Load register A with location content 'u ' 7b5c 7502 SZA *+2 (lbl_5624) ! Skips if register A is zero ' 7' 7b5d 1437 CPA lbl_5638 (=7000) ! Skips if A and location content differ 'D)' 7b5e 4429 lbl_5624: JSM lbl_5635 ! Jumps to subroutine at location ' ' 7b5f 0008 LDA R_10 ! Load register A with location content ' ' 7b60 f402 SAP *+2 (lbl_5625) ! Skips if register A is >= zero (bit 15 is 0) 'D&' 7b61 4426 JSM lbl_5635 ! Jumps to subroutine at location ' ' 7b62 03f2 lbl_5625: LDA fff2 ! Load register A with location content ' U' 7b63 1055 lbl_5626: CPA lbl_0057 (=ffff) ! Skips if A and location content differ 'l ' 7b64 6c05 JMP lbl_5627 ! Unconditional branch to location '0 ' 7b65 301e STA R_36 ! Store content of register A to location ' ' 7b66 13f4 CPA fff4 ! Skips if A and location content differ 'o ' 7b67 6ffb JMP lbl_5625 ! Unconditional branch to location 'D ' 7b68 441f JSM lbl_5635 ! Jumps to subroutine at location ' ' 7b69 03f3 lbl_5627: LDA fff3 ! Load register A with location content ' U' 7b6a 1055 CPA lbl_0057 (=ffff) ! Skips if A and location content differ 'l ' 7b6b 6c05 JMP lbl_5628 ! Unconditional branch to location '0 ' 7b6c 301e STA R_36 ! Store content of register A to location ' ' 7b6d 13f4 CPA fff4 ! Skips if A and location content differ 'o ' 7b6e 6ffb JMP lbl_5627 ! Unconditional branch to location 'D ' 7b6f 4418 JSM lbl_5635 ! Jumps to subroutine at location ' "' 7b70 0822 lbl_5628: LDB lbl_0006 (=0000) ! Load register B with location content '8 ' 7b71 381e lbl_5629: STB R_36 ! Store content of register B to location '8 ' 7b72 381a STB R_32 ! Store content of register B to location ' ' 7b73 03f0 LDA fff0 ! Load register A with location content '` ' 7b74 608c IOR lbl_0112 (=8000) ! Logical 'OR' operation, result stored in A '| ' 7b75 7c03 lbl_5630: RZB *+3 (lbl_5631) ! Skips if register B is not zero ' ' 7b76 141d CPA lbl_5637 (=efd0) ! Skips if A and location content differ 'l ' 7b77 6c0b JMP lbl_5633 ! Unconditional branch to location 's ' 7b78 738f lbl_5631: CLR #10 ! Clears # words pointed to by A ' 2' 7b79 2032 ADA lbl_0022 (=0010) ! Add location content to register A ' b' 7b7a 1062 CPA lbl_0070 (=fff0) ! Skips if A and location content differ 'l ' 7b7b 6c02 JMP lbl_5632 ! Unconditional branch to location 'o ' 7b7c 6ff9 JMP lbl_5630 ! Unconditional branch to location ' ' 7b7d 0bf2 lbl_5632: LDB fff2 ! Load register B with location content ' 3' 7b7e fc33 SBP *-13 (lbl_5629) ! Skips if register B is >= zero (bit 15 is 0) ' ' 7b7f 0012 LDA Ar2(3) ! Load register A with location content '0 ' 7b80 3001 STA B ! Store content of register A to location ' ' 7b81 e8f2 JMP lbl_0214,I (=3910) ! Unconditional branch to location 's ' 7b82 7385 lbl_5633: CLR #6 ! Clears # words pointed to by A ' )' 7b83 2029 ADA lbl_0013 (=0007) ! Add location content to register A 's ' 7b84 7388 lbl_5634: CLR #9 ! Clears # words pointed to by A ' +' 7b85 202b ADA lbl_0015 (=0009) ! Add location content to register A 'o ' 7b86 6fef JMP lbl_5630 ! Unconditional branch to location ' "' 7b87 0022 lbl_5635: LDA lbl_0006 (=0000) ! Load register A with location content '0 ' 7b88 301a STA R_32 ! Store content of register A to location ' #' 7b89 0023 LDA lbl_0007 (=0001) ! Load register A with location content ' ' 7b8a b09a STA lbl_0126,I (=efd6) ! Store content of register A to location ' "' 7b8b 0022 LDA lbl_0006 (=0000) ! Load register A with location content '0 ' 7b8c 3009 STA Pa ! Store content of register A to location ' ' 7b8d 008c LDA lbl_0112 (=8000) ! Load register A with location content '0 ' 7b8e 3007 STA R7 ! Store content of register A to location pause ' Z' 7b8f 085a LDB lbl_0062 (=fffa) ! Load register B with location content 't@' 7b90 7440 lbl_5636: RIA *+0 (lbl_5636) ! Skips if register A is not 0, then increments A '| ' 7b91 7c7f RIB *-1 (lbl_5636) ! Skips if register B is not 0, then increments B next... 'o ' 7b92 6ff5 JMP lbl_5635 ! Unconditional branch to location ' ' 7b93 efd0 lbl_5637: JMP lbl_5626,I (=1055) ! Unconditional branch to location 'p ' 7b94 7000 lbl_5638: EXE A ! Executes register content ' ' 7b95 7fef lbl_5639: RLB *-17,S (lbl_5634) ! Skips if least significant bit of B is not zero ' ' 7b96 aaaa lbl_5640: ADB feaa,I ! Add location content to register B 'UU' 7b97 5555 lbl_5641: AND lbl_5642 (=0000) ! Logical 'AND' operation, result stored in A