RL02 Microcode Disassembly From http://www.chdickman.com/rx02/ addr inst function ----- ------ ---------------------------------------------------- 0000: 141446 R8 = (R8 - R8) 0001: 000253 jmp 0253 0002: 010327 jsr 0327 0003: 163420 Rc = 2 * (Rc) 0004: 056406 if not DAT SIGN goto 0006 0005: 031000 hold FLAG 0006: 010747 jsr 0747 0007: 165460 Rd = (Rd - 1) 0010: 057403 if not DAT ZERO goto 0003 0011: 134004 q = (R7 + R7) 0012: 157420 Rb = 2 * (Rb) 0013: 056415 if not DAT SIGN goto 0015 0014: 031000 hold FLAG 0015: 046017 if WRT DAT L goto 0017 0016: 155422 Rb = (Rb + 1) 0017: 100050 q = (q - 1) 0020: 057602 if not DAT ZERO goto 0202 0021: 075613 if not BUF IN DAT goto 0213 0022: 010751 jsr 0751 0023: 155420 Rb = (Rb) 0024: 056026 if DAT SIGN goto 0026 0025: 031000 hold FLAG 0026: 037240 CRC = RX DATA, inc SEC BUF ADR 0027: 024200 set RX DONE/DRV ERASE 0030: 077031 write DD goto 0031 0031: 000053 jmp 0053 0032: 000044 jmp 0044 0033: 070444 if not DAT 06 goto 0044 0034: 052073 if DAT ALG2 goto 0073 0035: 155404 Rb = (Rb + Rb) 0036: 046040 if WRT DAT L goto 0040 0037: 155422 Rb = (Rb + 1) 0040: 037200 CRC = RX DATA 0041: 020640 toggle NOP/DRV SEL HD0, inc SEC BUF ADR 0042: 073030 if WRT DONE goto 0030 0043: 000063 jmp 0063 0044: 155404 Rb = (Rb + Rb) 0045: 046047 if WRT DAT L goto 0047 0046: 155422 Rb = (Rb + 1) 0047: 037200 CRC = RX DATA 0050: 031040 hold FLAG, inc SEC BUF ADR 0051: 073030 if WRT DONE goto 0030 0052: 000063 jmp 0063 0053: 031000 hold FLAG 0054: 155404 Rb = (Rb + Rb) 0055: 046057 if WRT DAT L goto 0057 0056: 155422 Rb = (Rb + 1) 0057: 037200 CRC = RX DATA 0060: 020640 toggle NOP/DRV SEL HD0, inc SEC BUF ADR 0061: 073030 if WRT DONE goto 0030 0062: 100414 nop (const = 003) 0063: 010751 jsr 0751 0064: 134004 q = (R7 + R7) 0065: 057234 if DAT ZERO goto 0234 0066: 010750 jsr 0750 0067: 031000 hold FLAG 0070: 100050 q = (q - 1) 0071: 010750 jsr 0750 0072: 000065 jmp 0065 0073: 155404 Rb = (Rb + Rb) 0074: 046076 if WRT DAT L goto 0076 0075: 155422 Rb = (Rb + 1) 0076: 031000 hold FLAG 0077: 100414 nop (const = 003) 0100: 010250 jsr 0250 0101: 010245 jsr 0245 0102: 010245 jsr 0245 0103: 031000 hold FLAG 0104: 010751 jsr 0751 0105: 010245 jsr 0245 0106: 010245 jsr 0245 0107: 010750 jsr 0750 0110: 031000 hold FLAG 0111: 000027 jmp 0027 0112: 134004 q = (R7 + R7) 0113: 141410 R8 = (q) 0114: 001476 jmp 1476 0115: 100414 nop (const = 003) 0116: 100174 q = (d) 0117: 100660 const = 054 0120: 120102 q = (R4 - q) 0121: 056523 if not DAT SIGN goto 0123 0122: 023401 clear RX OUT/DRV OUT/ABV T43, return 0123: 023201 set RX OUT/DRV OUT/ABV T43, return 0124: 010740 jsr 0740 0125: 173410 Re = 2 * (q) 0126: 026400 clear DRV BUSS 0127: 026200 set DRV BUSS 0130: 032600 BUF DAT = 0 0131: 131420 R6 = (R6) 0132: 065534 if not DAT 00 goto 0134 0133: 032400 BUF DAT = 1 0134: 037400 CRC = 1 0135: 037400 CRC = 1 0136: 037400 CRC = 1 0137: 037400 CRC = 1 0140: 021200 set RX ERROR/DRV WT GATE 0141: 130004 q = (R6 + R6) 0142: 072563 if not DAT 04 goto 0163 0143: 075552 if not BUF IN DAT goto 0152 0144: 155574 Rb = (d) 0145: 104654 const = 153 0146: 037400 CRC = 1 0147: 037600 CRC = 0 0150: 037600 CRC = 0 0151: 000171 jmp 0171 0152: 100414 nop (const = 003) 0153: 155574 Rb = (d) 0154: 104650 const = 152 0155: 037400 CRC = 1 0156: 037600 CRC = 0 0157: 037600 CRC = 0 0160: 037600 CRC = 0 0161: 000172 jmp 0172 0162: 131420 R6 = (R6) 0163: 075204 if BUF IN DAT goto 0204 0164: 155574 Rb = (d) 0165: 104674 const = 157 0166: 037400 CRC = 1 0167: 037600 CRC = 0 0170: 037400 CRC = 1 0171: 037400 CRC = 1 0172: 134004 q = (R7 + R7) 0173: 165410 Rd = (q) 0174: 161574 Rc = (d) 0175: 114724 const = 365 0176: 151574 Ra = (d) 0177: 100700 const = 060 0200: 036600 SEC BUF ADR = 4000 0201: 000002 jmp 0002 0202: 037240 CRC = RX DATA, inc SEC BUF ADR 0203: 000012 jmp 0012 0204: 100414 nop (const = 003) 0205: 155574 Rb = (d) 0206: 104754 const = 173 0207: 037400 CRC = 1 0210: 037400 CRC = 1 0211: 037600 CRC = 0 0212: 000171 jmp 0171 0213: 010751 jsr 0751 0214: 037240 CRC = RX DATA, inc SEC BUF ADR 0215: 031000 hold FLAG 0216: 074230 if BUF ADRS 10 goto 0230 0217: 024200 set RX DONE/DRV ERASE 0220: 010746 jsr 0746 0221: 157420 Rb = 2 * (Rb) 0222: 056624 if not DAT SIGN goto 0224 0223: 031000 hold FLAG 0224: 046226 if WRT DAT L goto 0226 0225: 155422 Rb = (Rb + 1) 0226: 010746 jsr 0746 0227: 000214 jmp 0214 0230: 035600 clear RX SHIFT/DRV RD 2F 0231: 100414 nop (const = 003) 0232: 171460 Re = (Re - 1) 0233: 057621 if not DAT ZERO goto 0221 0234: 021400 clear RX ERROR/DRV WT GATE 0235: 134022 q = (R7 + 1) 0236: 151410 Ra = (q) 0237: 011762 jsr 1762 0240: 024400 clear RX DONE/DRV ERASE 0241: 100046 q = (R0 - R0) 0242: 151412 Ra = (q + 1) 0243: 011762 jsr 1762 0244: 100415 nop (const = 003), return 0245: 155404 Rb = (Rb + Rb) 0246: 046250 if WRT DAT L goto 0250 0247: 155422 Rb = (Rb + 1) 0250: 037200 CRC = RX DATA 0251: 020640 toggle NOP/DRV SEL HD0, inc SEC BUF ADR 0252: 100415 nop (const = 003), return 0253: 105446 R1 = (R1 - R1) 0254: 135574 R7 = (d) 0255: 100420 const = 004 0256: 134020 q = (R7) 0257: 101410 R0 = (q) 0260: 131446 R6 = (R6 - R6) 0261: 031200 set FLAG 0262: 111446 R2 = (R2 - R2) 0263: 117046 q = 2 * q, R3 = 2 * (R3 - R3) 0264: 134046 q = (R7 - R7) 0265: 125412 R5 = (q + 1) 0266: 121410 R4 = (q) 0267: 151444 Ra = (Ra - Ra - 1) 0270: 026200 set DRV BUSS 0271: 011762 jsr 1762 0272: 027200 set DRV UNIT SEL 0273: 023400 clear RX OUT/DRV OUT/ABV T43 0274: 134022 q = (R7 + 1) 0275: 011741 jsr 1741 0276: 023200 set RX OUT/DRV OUT/ABV T43 0277: 011111 jsr 1111 0300: 011741 jsr 1741 0301: 161420 Rc = (Rc) 0302: 057707 if not DAT ZERO goto 0307 0303: 064512 if not FLAG goto 0112 0304: 010740 jsr 0740 0305: 141410 R8 = (q) 0306: 001476 jmp 1476 0307: 064713 if not FLAG goto 0313 0310: 031400 clear FLAG 0311: 027400 clear DRV UNIT SEL 0312: 000273 jmp 0273 0313: 010721 jsr 0721 0314: 010656 jsr 0656 0315: 064725 if not FLAG goto 0325 0316: 011543 jsr 1543 0317: 010471 jsr 0471 0320: 131540 R6 = (R6 | q) 0321: 121422 R4 = (R4 + 1) 0322: 010372 jsr 0372 0323: 031200 set FLAG 0324: 001660 jmp 1660 0325: 001500 jmp 1500 0326: 010751 jsr 0751 0327: 031000 hold FLAG 0330: 134020 q = (R7) 0331: 100050 q = (q - 1) 0332: 057731 if not DAT ZERO goto 0331 0333: 010751 jsr 0751 0334: 151460 Ra = (Ra - 1) 0335: 057726 if not DAT ZERO goto 0326 0336: 100415 nop (const = 003), return 0337: 161410 Rc = (q) 0340: 171574 Re = (d) 0341: 100500 const = 020 0342: 134044 q = (R7 - R7 - 1) 0343: 020620 toggle NOP/DRV SEL HD0, wait 0344: 042360 if RUN goto 0360 0345: 100050 q = (q - 1) 0346: 057743 if not DAT ZERO goto 0343 0347: 171460 Re = (Re - 1) 0350: 057742 if not DAT ZERO goto 0342 0351: 010743 jsr 0743 0352: 131600 R6 = (R6 & q) 0353: 030400 clear DRV HD LD 0354: 175420 Rf = (Rf) 0355: 041357 if DMA INTF L goto 0357 0356: 057762 if not DAT ZERO goto 0362 0357: 042757 if not RUN goto 0357 0360: 022400 clear RX TR/DRV STEP 0361: 160021 q = (Rc) , return 0362: 001476 jmp 1476 0363: 010767 jsr 0767 0364: 011124 jsr 1124 0365: 010124 jsr 0124 0366: 125422 R5 = (R5 + 1) 0367: 011313 jsr 1313 0370: 010400 jsr 0400 0371: 001500 jmp 1500 0372: 020200 set NOP/DRV SEL HD0 0373: 010656 jsr 0656 0374: 064776 if not FLAG goto 0376 0375: 101564 R0 = (d | R0) 0376: 100410 const = 002 0377: 020401 clear NOP/DRV SEL HD0, return 0400: 010115 jsr 0115 0401: 036600 SEC BUF ADR = 4000 0402: 032400 BUF DAT = 1 0403: 010471 jsr 0471 0404: 075041 if BUF IN DAT goto 0441 0405: 031400 clear FLAG 0406: 120020 q = (R4) 0407: 010454 jsr 0454 0410: 057444 if not DAT ZERO goto 0444 0411: 155446 Rb = (Rb - Rb) 0412: 010454 jsr 0454 0413: 124020 q = (R5) 0414: 010454 jsr 0454 0415: 057017 if DAT ZERO goto 0417 0416: 031200 set FLAG 0417: 010454 jsr 0454 0420: 134004 q = (R7 + R7) 0421: 153010 q = 2 * q, Ra = 2 * (q) 0422: 020620 toggle NOP/DRV SEL HD0, wait 0423: 062026 if READ STROBE goto 0426 0424: 000450 jmp 0450 0425: 100415 nop (const = 003), return 0426: 037000 CRC = DRV SEP DAT 0427: 151460 Ra = (Ra - 1) 0430: 057422 if not DAT ZERO goto 0422 0431: 051041 if CRC ERR goto 0441 0432: 155420 Rb = (Rb) 0433: 057025 if DAT ZERO goto 0425 0434: 141574 R8 = (d) 0435: 104640 const = 150 0436: 160020 q = (Rc) 0437: 165410 Rd = (q) 0440: 001476 jmp 1476 0441: 020640 toggle NOP/DRV SEL HD0, inc SEC BUF ADR 0442: 045402 if not SEC BUF OVF goto 0402 0443: 000604 jmp 0604 0444: 155444 Rb = (Rb - Rb - 1) 0445: 164020 q = (Rd) 0446: 161410 Rc = (q) 0447: 000412 jmp 0412 0450: 100414 nop (const = 003) 0451: 141574 R8 = (d) 0452: 104440 const = 110 0453: 001476 jmp 1476 0454: 165446 Rd = (Rd - Rd) 0455: 151574 Ra = (d) 0456: 100440 const = 010 0457: 165404 Rd = (Rd + Rd) 0460: 020620 toggle NOP/DRV SEL HD0, wait 0461: 062063 if READ STROBE goto 0463 0462: 000450 jmp 0450 0463: 053465 if not DRV SEP DAT goto 0465 0464: 165422 Rd = (Rd + 1) 0465: 037000 CRC = DRV SEP DAT 0466: 151460 Ra = (Ra - 1) 0467: 057457 if not DAT ZERO goto 0457 0470: 164103 q = (Rd - q) , return 0471: 134004 q = (R7 + R7) 0472: 163010 q = 2 * q, Rc = 2 * (q) 0473: 134046 q = (R7 - R7) 0474: 155412 Rb = (q + 1) 0475: 165444 Rd = (Rd - Rd - 1) 0476: 031400 clear FLAG 0477: 026400 clear DRV BUSS 0500: 026200 set DRV BUSS 0501: 035600 clear RX SHIFT/DRV RD 2F 0502: 075106 if BUF IN DAT goto 0506 0503: 131420 R6 = (R6) 0504: 065506 if not DAT 00 goto 0506 0505: 020604 toggle NOP/DRV SEL HD0, toggle RX SHIFT 0506: 025420 RX DATA = 1, wait 0507: 062117 if READ STROBE goto 0517 0510: 020620 toggle NOP/DRV SEL HD0, wait 0511: 062117 if READ STROBE goto 0517 0512: 100050 q = (q - 1) 0513: 057506 if not DAT ZERO goto 0506 0514: 141574 R8 = (d) 0515: 104500 const = 120 0516: 001476 jmp 1476 0517: 134046 q = (R7 - R7) 0520: 053127 if DRV SEP DAT goto 0527 0521: 165460 Rd = (Rd - 1) 0522: 057176 if DAT ZERO goto 0576 0523: 020620 toggle NOP/DRV SEL HD0, wait 0524: 062126 if READ STROBE goto 0526 0525: 000450 jmp 0450 0526: 053521 if not DRV SEP DAT goto 0521 0527: 054576 if not DRV SEP CLK goto 0576 0530: 037420 CRC = 1, wait 0531: 062133 if READ STROBE goto 0533 0532: 000450 jmp 0450 0533: 054576 if not DRV SEP CLK goto 0576 0534: 053576 if not DRV SEP DAT goto 0576 0535: 037420 CRC = 1, wait 0536: 062140 if READ STROBE goto 0540 0537: 000450 jmp 0450 0540: 054176 if DRV SEP CLK goto 0576 0541: 053576 if not DRV SEP DAT goto 0576 0542: 037420 CRC = 1, wait 0543: 062145 if READ STROBE goto 0545 0544: 000450 jmp 0450 0545: 054176 if DRV SEP CLK goto 0576 0546: 053576 if not DRV SEP DAT goto 0576 0547: 037420 CRC = 1, wait 0550: 062152 if READ STROBE goto 0552 0551: 000450 jmp 0450 0552: 054176 if DRV SEP CLK goto 0576 0553: 053576 if not DRV SEP DAT goto 0576 0554: 037420 CRC = 1, wait 0555: 062157 if READ STROBE goto 0557 0556: 000450 jmp 0450 0557: 054576 if not DRV SEP CLK goto 0576 0560: 053610 if not DRV SEP DAT goto 0610 0561: 037420 CRC = 1, wait 0562: 062165 if READ STROBE goto 0565 0563: 000450 jmp 0450 0564: 037601 CRC = 0, return 0565: 054576 if not DRV SEP CLK goto 0576 0566: 053233 if DRV SEP DAT goto 0633 0567: 037620 CRC = 0, wait 0570: 062172 if READ STROBE goto 0572 0571: 000450 jmp 0450 0572: 054576 if not DRV SEP CLK goto 0576 0573: 053576 if not DRV SEP DAT goto 0576 0574: 037400 CRC = 1 0575: 154021 q = (Rb) , return 0576: 075202 if BUF IN DAT goto 0602 0577: 141574 R8 = (d) 0600: 104740 const = 170 0601: 001476 jmp 1476 0602: 020640 toggle NOP/DRV SEL HD0, inc SEC BUF ADR 0603: 045471 if not SEC BUF OVF goto 0471 0604: 100414 nop (const = 003) 0605: 141574 R8 = (d) 0606: 104700 const = 160 0607: 001476 jmp 1476 0610: 037620 CRC = 0, wait 0611: 062213 if READ STROBE goto 0613 0612: 000450 jmp 0450 0613: 054576 if not DRV SEP CLK goto 0576 0614: 053225 if DRV SEP DAT goto 0625 0615: 031200 set FLAG 0616: 037620 CRC = 0, wait 0617: 062221 if READ STROBE goto 0621 0620: 000450 jmp 0450 0621: 054576 if not DRV SEP CLK goto 0576 0622: 053564 if not DRV SEP DAT goto 0564 0623: 037400 CRC = 1 0624: 154021 q = (Rb) , return 0625: 037420 CRC = 1, wait 0626: 062230 if READ STROBE goto 0630 0627: 000450 jmp 0450 0630: 054576 if not DRV SEP CLK goto 0576 0631: 053576 if not DRV SEP DAT goto 0576 0632: 037401 CRC = 1, return 0633: 037420 CRC = 1, wait 0634: 062236 if READ STROBE goto 0636 0635: 000450 jmp 0450 0636: 054576 if not DRV SEP CLK goto 0576 0637: 053176 if DRV SEP DAT goto 0576 0640: 037600 CRC = 0 0641: 075576 if not BUF IN DAT goto 0576 0642: 032601 BUF DAT = 0, return 0643: 100414 nop (const = 003) 0644: 151574 Ra = (d) 0645: 100571 const = 036, return 0646: 020400 clear NOP/DRV SEL HD0 0647: 011114 jsr 1114 0650: 010656 jsr 0656 0651: 064655 if not FLAG goto 0655 0652: 010372 jsr 0372 0653: 032600 BUF DAT = 0 0654: 011125 jsr 1125 0655: 001500 jmp 1500 0656: 161506 Rc = (Rc - Rc) 0657: 161422 Rc = (Rc + 1) 0660: 165574 Rd = (d) 0661: 100470 const = 016 0662: 031400 clear FLAG 0663: 100414 nop (const = 003) 0664: 155574 Rb = (d) 0665: 110500 const = 220 0666: 011111 jsr 1111 0667: 044304 if INDEX goto 0704 0670: 100050 q = (q - 1) 0671: 057670 if not DAT ZERO goto 0670 0672: 155460 Rb = (Rb - 1) 0673: 057666 if not DAT ZERO goto 0666 0674: 165460 Rd = (Rd - 1) 0675: 057663 if not DAT ZERO goto 0663 0676: 064303 if FLAG goto 0703 0677: 031200 set FLAG 0700: 134020 q = (R7) 0701: 166010 q = 1/2 * q, Rd = 1/2 * (q) 0702: 000663 jmp 0663 0703: 031401 clear FLAG, return 0704: 161460 Rc = (Rc - 1) 0705: 056314 if DAT SIGN goto 0714 0706: 151574 Ra = (d) 0707: 104620 const = 144 0710: 165574 Rd = (d) 0711: 100464 const = 015 0712: 011762 jsr 1762 0713: 000662 jmp 0662 0714: 064703 if not FLAG goto 0703 0715: 151444 Ra = (Ra - Ra - 1) 0716: 011762 jsr 1762 0717: 011111 jsr 1111 0720: 101541 R0 = (R0 | q) , return 0721: 034200 set MAINTENANCE 0722: 011246 jsr 1246 0723: 025400 RX DATA = 1 0724: 151410 Ra = (q) 0725: 010327 jsr 0327 0726: 020620 toggle NOP/DRV SEL HD0, wait 0727: 062335 if READ STROBE goto 0735 0730: 100414 nop (const = 003) 0731: 141574 R8 = (d) 0732: 110500 const = 220 0733: 010737 jsr 0737 0734: 001476 jmp 1476 0735: 053330 if DRV SEP DAT goto 0730 0736: 054730 if not DRV SEP CLK goto 0730 0737: 034401 clear MAINTENANCE, return 0740: 100414 nop (const = 003) 0741: 100174 q = (d) 0742: 100501 const = 020, return 0743: 100414 nop (const = 003) 0744: 100174 q = (d) 0745: 114575 const = 337, return 0746: 100414 nop (const = 003) 0747: 100414 nop (const = 003) 0750: 100414 nop (const = 003) 0751: 100415 nop (const = 003), return 0752: 041765 if not DMA INTF L goto 0765 0753: 040766 if not RX01 L goto 0766 0754: 050365 if 12 BIT goto 0765 0755: 011626 jsr 1626 0756: 154020 q = (Rb) 0757: 165410 Rd = (q) 0760: 011625 jsr 1625 0761: 154020 q = (Rb) 0762: 151410 Ra = (q) 0763: 164020 q = (Rd) 0764: 155411 Rb = (q) , return 0765: 001631 jmp 1631 0766: 001626 jmp 1626 0767: 011625 jsr 1625 0770: 100414 nop (const = 003) 0771: 154224 q = (d & Rb) 0772: 100574 const = 037 0773: 125410 R5 = (q) 0774: 011625 jsr 1625 0775: 154020 q = (Rb) 0776: 121411 R4 = (q) , return 0777: 000777 jmp 0777 1000: 031200 set FLAG 1001: 035600 clear RX SHIFT/DRV RD 2F 1002: 041011 if DMA INTF L goto 1011 1003: 011625 jsr 1625 1004: 154020 q = (Rb) 1005: 145410 R9 = (q) 1006: 057410 if not DAT ZERO goto 1010 1007: 001500 jmp 1500 1010: 175444 Rf = (Rf - Rf - 1) 1011: 064413 if not FLAG goto 1013 1012: 023200 set RX OUT/DRV OUT/ABV T43 1013: 011246 jsr 1246 1014: 131420 R6 = (R6) 1015: 041475 if not DMA INTF L goto 1075 1016: 040106 if RX01 L goto 1106 1017: 145410 R9 = (q) 1020: 050022 if 12 BIT goto 1022 1021: 145404 R9 = (R9 + R9) 1022: 036600 SEC BUF ADR = 4000 1023: 134004 q = (R7 + R7) 1024: 100050 q = (q - 1) 1025: 050430 if not 12 BIT goto 1030 1026: 150174 q = (d) 1027: 100454 const = 013 1030: 155410 Rb = (q) 1031: 154020 q = (Rb) 1032: 063451 if not RX OUT/DRV OUT/ABV T43 goto 1051 1033: 025240 RX DATA = SEC BUF OUT, inc SEC BUF ADR 1034: 001036 jmp 1036 1035: 025244 RX DATA = SEC BUF OUT, inc SEC BUF ADR, toggle RX SHIFT 1036: 020600 toggle NOP/DRV SEL HD0 1037: 100050 q = (q - 1) 1040: 020604 toggle NOP/DRV SEL HD0, toggle RX SHIFT 1041: 056435 if not DAT SIGN goto 1035 1042: 035600 clear RX SHIFT/DRV RD 2F 1043: 022200 set RX TR/DRV STEP 1044: 010337 jsr 0337 1045: 145460 R9 = (R9 - 1) 1046: 057431 if not DAT ZERO goto 1031 1047: 025600 RX DATA = 0 1050: 001500 jmp 1500 1051: 022200 set RX TR/DRV STEP 1052: 010337 jsr 0337 1053: 032200 BUF DAT = RX DATA 1054: 033204 set BUF WRT, toggle RX SHIFT 1055: 100050 q = (q - 1) 1056: 033400 clear BUF WRT 1057: 032244 BUF DAT = RX DATA, inc SEC BUF ADR, toggle RX SHIFT 1060: 057454 if not DAT ZERO goto 1054 1061: 100414 nop (const = 003) 1062: 033200 set BUF WRT 1063: 100414 nop (const = 003) 1064: 033400 clear BUF WRT 1065: 145460 R9 = (R9 - 1) 1066: 057071 if DAT ZERO goto 1071 1067: 035640 clear RX SHIFT/DRV RD 2F, inc SEC BUF ADR 1070: 001031 jmp 1031 1071: 045074 if SEC BUF OVF goto 1074 1072: 041074 if DMA INTF L goto 1074 1073: 011333 jsr 1333 1074: 001500 jmp 1500 1075: 065477 if not DAT 00 goto 1077 1076: 153010 q = 2 * q, Ra = 2 * (q) 1077: 144042 q = (q - R9) 1100: 056420 if not DAT SIGN goto 1020 1101: 134020 q = (R7) 1102: 105540 R1 = (R1 | q) 1103: 141574 R8 = (d) 1104: 110540 const = 230 1105: 001476 jmp 1476 1106: 065417 if not DAT 00 goto 1017 1107: 147410 R9 = 2 * (q) 1110: 001020 jmp 1020 1111: 100414 nop (const = 003) 1112: 100174 q = (d) 1113: 110401 const = 200, return 1114: 011111 jsr 1111 1115: 131420 R6 = (R6) 1116: 056225 if DAT SIGN goto 1225 1117: 064231 if FLAG goto 1231 1120: 027200 set DRV UNIT SEL 1121: 131540 R6 = (R6 | q) 1122: 010743 jsr 0743 1123: 131601 R6 = (R6 & q) , return 1124: 011114 jsr 1114 1125: 100414 nop (const = 003) 1126: 100174 q = (d) 1127: 104464 const = 115 1130: 120102 q = (R4 - q) 1131: 056135 if DAT SIGN goto 1135 1132: 010740 jsr 0740 1133: 143010 q = 2 * q, R8 = 2 * (q) 1134: 001476 jmp 1476 1135: 026200 set DRV BUSS 1136: 120020 q = (R4) 1137: 110042 q = (q - R2) 1140: 061543 if not DRV SEL DK1 goto 1143 1141: 120020 q = (R4) 1142: 114042 q = (q - R3) 1143: 057234 if DAT ZERO goto 1234 1144: 023400 clear RX OUT/DRV OUT/ABV T43 1145: 056550 if not DAT SIGN goto 1150 1146: 023200 set RX OUT/DRV OUT/ABV T43 1147: 100112 q = (-q) 1150: 011741 jsr 1741 1151: 161420 Rc = (Rc) 1152: 057156 if DAT ZERO goto 1156 1153: 141574 R8 = (d) 1154: 100640 const = 050 1155: 001476 jmp 1476 1156: 120020 q = (R4) 1157: 061632 if not DRV SEL DK1 goto 1232 1160: 115410 R3 = (q) 1161: 075220 if BUF IN DAT goto 1220 1162: 131420 R6 = (R6) 1163: 071363 if DAT 05 goto 1363 1164: 125460 R5 = (R5 - 1) 1165: 057242 if DAT ZERO goto 1242 1166: 011543 jsr 1543 1167: 032400 BUF DAT = 1 1170: 010471 jsr 0471 1171: 100414 nop (const = 003) 1172: 151574 Ra = (d) 1173: 100500 const = 020 1174: 131420 R6 = (R6) 1175: 056577 if not DAT SIGN goto 1177 1176: 153404 Ra = 2 * (Ra + Ra) 1177: 100010 q = (q) 1200: 057212 if DAT ZERO goto 1212 1201: 130020 q = (R6) 1202: 150140 q = (Ra | q) 1203: 131410 R6 = (q) 1204: 065216 if DAT 00 goto 1216 1205: 010740 jsr 0740 1206: 101540 R0 = (R0 | q) 1207: 141574 R8 = (d) 1210: 110600 const = 240 1211: 001476 jmp 1476 1212: 130020 q = (R6) 1213: 150240 q = (!Ra & q) 1214: 131410 R6 = (q) 1215: 065205 if DAT 00 goto 1205 1216: 125422 R5 = (R5 + 1) 1217: 011313 jsr 1313 1220: 010740 jsr 0740 1221: 153010 q = 2 * q, Ra = 2 * (q) 1222: 131540 R6 = (R6 | q) 1223: 011543 jsr 1543 1224: 036601 SEC BUF ADR = 4000, return 1225: 064631 if not FLAG goto 1231 1226: 027400 clear DRV UNIT SEL 1227: 131700 R6 = (R6 ^ q) 1230: 001122 jmp 1122 1231: 100415 nop (const = 003), return 1232: 111410 R2 = (q) 1233: 001161 jmp 1161 1234: 131420 R6 = (R6) 1235: 071241 if DAT 05 goto 1241 1236: 030200 set DRV HD LD 1237: 151444 Ra = (Ra - Ra - 1) 1240: 011762 jsr 1762 1241: 001161 jmp 1161 1242: 100414 nop (const = 003) 1243: 125574 R5 = (d) 1244: 100550 const = 032 1245: 001166 jmp 1166 1246: 100414 nop (const = 003) 1247: 100174 q = (d) 1250: 104401 const = 100, return 1251: 011323 jsr 1323 1252: 020200 set NOP/DRV SEL HD0 1253: 036600 SEC BUF ADR = 4000 1254: 011327 jsr 1327 1255: 123106 q = 2 * q, R4 = 2 * (R4 - R4) 1256: 120020 q = (R4) 1257: 026200 set DRV BUSS 1260: 125412 R5 = (q + 1) 1261: 100414 nop (const = 003) 1262: 175574 Rf = (d) 1263: 100550 const = 032 1264: 032400 BUF DAT = 1 1265: 011124 jsr 1124 1266: 010124 jsr 0124 1267: 125422 R5 = (R5 + 1) 1270: 011313 jsr 1313 1271: 011323 jsr 1323 1272: 175460 Rf = (Rf - 1) 1273: 057664 if not DAT ZERO goto 1264 1274: 100174 q = (d) 1275: 104460 const = 114 1276: 120042 q = (q - R4) 1277: 057705 if not DAT ZERO goto 1305 1300: 067703 if not DRV SEL HEAD 0 goto 1303 1301: 010372 jsr 0372 1302: 064251 if FLAG goto 1251 1303: 011164 jsr 1164 1304: 001500 jmp 1500 1305: 121422 R4 = (R4 + 1) 1306: 100174 q = (d) 1307: 100434 const = 007 1310: 125400 R5 = (R5 + q) 1311: 011313 jsr 1313 1312: 001261 jmp 1261 1313: 100414 nop (const = 003) 1314: 100174 q = (d) 1315: 100550 const = 032 1316: 124042 q = (q - R5) 1317: 056722 if not DAT SIGN goto 1322 1320: 124046 q = (R5 - R5) 1321: 125412 R5 = (q + 1) 1322: 100415 nop (const = 003), return 1323: 131420 R6 = (R6) 1324: 056726 if not DAT SIGN goto 1326 1325: 031401 clear FLAG, return 1326: 031201 set FLAG, return 1327: 032600 BUF DAT = 0 1330: 033200 set BUF WRT 1331: 045335 if SEC BUF OVF goto 1335 1332: 033400 clear BUF WRT 1333: 032640 BUF DAT = 0, inc SEC BUF ADR 1334: 001330 jmp 1330 1335: 033401 clear BUF WRT, return 1336: 023200 set RX OUT/DRV OUT/ABV T43 1337: 140020 q = (R8) 1340: 041742 if not DMA INTF L goto 1342 1341: 001532 jmp 1532 1342: 031400 clear FLAG 1343: 011621 jsr 1621 1344: 144020 q = (R9) 1345: 011621 jsr 1621 1346: 110020 q = (R2) 1347: 011621 jsr 1621 1350: 114020 q = (R3) 1351: 011621 jsr 1621 1352: 120020 q = (R4) 1353: 011621 jsr 1621 1354: 124020 q = (R5) 1355: 011621 jsr 1621 1356: 130020 q = (R6) 1357: 011621 jsr 1621 1360: 164020 q = (Rd) 1361: 011621 jsr 1621 1362: 001500 jmp 1500 1363: 056367 if DAT SIGN goto 1367 1364: 072370 if DAT 04 goto 1370 1365: 065620 if not DAT 00 goto 1220 1366: 001205 jmp 1205 1367: 070765 if not DAT 06 goto 1365 1370: 065766 if not DAT 00 goto 1366 1371: 001220 jmp 1220 1372: 001372 jmp 1372 1373: 001373 jmp 1373 1374: 001374 jmp 1374 1375: 001375 jmp 1375 1376: 001376 jmp 1376 1377: 001377 jmp 1377 1400: 022400 clear RX TR/DRV STEP 1401: 023400 clear RX OUT/DRV OUT/ABV T43 1402: 024200 set RX DONE/DRV ERASE 1403: 032600 BUF DAT = 0 1404: 031400 clear FLAG 1405: 175446 Rf = (Rf - Rf) 1406: 010337 jsr 0337 1407: 010752 jsr 0752 1410: 105506 R1 = (R1 - R1) 1411: 020400 clear NOP/DRV SEL HD0 1412: 134106 q = (R7 - R7) 1413: 040415 if not RX01 L goto 1415 1414: 100012 q = (q + 1) 1415: 150200 q = (Ra & q) 1416: 057423 if not DAT ZERO goto 1423 1417: 100050 q = (q - 1) 1420: 100050 q = (q - 1) 1421: 131600 R6 = (R6 & q) 1422: 001424 jmp 1424 1423: 131540 R6 = (R6 | q) 1424: 040432 if not RX01 L goto 1432 1425: 152020 q = 1/2 * q, Ra = 1/2 * (Ra) 1426: 151420 Ra = (Ra) 1427: 065432 if not DAT 00 goto 1432 1430: 020200 set NOP/DRV SEL HD0 1431: 107022 q = 2 * q, R1 = 2 * (R1 + 1) 1432: 101506 R0 = (R0 - R0) 1433: 100174 q = (d) 1434: 114734 const = 367 1435: 131600 R6 = (R6 & q) 1436: 157404 Rb = 2 * (Rb + Rb) 1437: 155404 Rb = (Rb + Rb) 1440: 056042 if DAT SIGN goto 1442 1441: 031200 set FLAG 1442: 070053 if DAT 06 goto 1453 1443: 071447 if not DAT 05 goto 1447 1444: 072046 if DAT 04 goto 1446 1445: 000363 jmp 0363 1446: 001657 jmp 1657 1447: 031400 clear FLAG 1450: 072052 if DAT 04 goto 1452 1451: 001001 jmp 1001 1452: 001000 jmp 1000 1453: 071071 if DAT 05 goto 1471 1454: 072456 if not DAT 04 goto 1456 1455: 000646 jmp 0646 1456: 040500 if not RX01 L goto 1500 1457: 011625 jsr 1625 1460: 100414 nop (const = 003) 1461: 100174 q = (d) 1462: 104444 const = 111 1463: 154042 q = (q - Rb) 1464: 057070 if DAT ZERO goto 1470 1465: 141574 R8 = (d) 1466: 110640 const = 250 1467: 001476 jmp 1476 1470: 001253 jmp 1253 1471: 072473 if not DAT 04 goto 1473 1472: 001336 jmp 1336 1473: 134004 q = (R7 + R7) 1474: 131540 R6 = (R6 | q) 1475: 000363 jmp 0363 1476: 026400 clear DRV BUSS 1477: 021200 set RX ERROR/DRV WT GATE 1500: 026400 clear DRV BUSS 1501: 131420 R6 = (R6) 1502: 056541 if not DAT SIGN goto 1541 1503: 134106 q = (R7 - R7) 1504: 100012 q = (q + 1) 1505: 105540 R1 = (R1 | q) 1506: 131420 R6 = (R6) 1507: 070513 if not DAT 06 goto 1513 1510: 010740 jsr 0740 1511: 153010 q = 2 * q, Ra = 2 * (q) 1512: 101540 R0 = (R0 | q) 1513: 130004 q = (R6 + R6) 1514: 072517 if not DAT 04 goto 1517 1515: 011246 jsr 1246 1516: 101540 R0 = (R0 | q) 1517: 022400 clear RX TR/DRV STEP 1520: 023200 set RX OUT/DRV OUT/ABV T43 1521: 104020 q = (R1) 1522: 151410 Ra = (q) 1523: 100020 q = (R0) 1524: 031200 set FLAG 1525: 041535 if not DMA INTF L goto 1535 1526: 040532 if not RX01 L goto 1532 1527: 100414 nop (const = 003) 1530: 100170 q = (d | q) 1531: 100440 const = 010 1532: 031200 set FLAG 1533: 011621 jsr 1621 1534: 001400 jmp 1400 1535: 024200 set RX DONE/DRV ERASE 1536: 011567 jsr 1567 1537: 022200 set RX TR/DRV STEP 1540: 001400 jmp 1400 1541: 072513 if not DAT 04 goto 1513 1542: 001510 jmp 1510 1543: 100414 nop (const = 003) 1544: 171574 Re = (d) 1545: 100720 const = 064 1546: 010400 jsr 0400 1547: 064555 if not FLAG goto 1555 1550: 171460 Re = (Re - 1) 1551: 057546 if not DAT ZERO goto 1546 1552: 141574 R8 = (d) 1553: 100740 const = 070 1554: 001476 jmp 1476 1555: 134106 q = (R7 - R7) 1556: 100050 q = (q - 1) 1557: 057556 if not DAT ZERO goto 1556 1560: 100050 q = (q - 1) 1561: 057560 if not DAT ZERO goto 1560 1562: 140174 q = (d) 1563: 100560 const = 034 1564: 100050 q = (q - 1) 1565: 057564 if not DAT ZERO goto 1564 1566: 100415 nop (const = 003), return 1567: 032400 BUF DAT = 1 1570: 155410 Rb = (q) 1571: 153404 Ra = 2 * (Ra + Ra) 1572: 153404 Ra = 2 * (Ra + Ra) 1573: 134020 q = (R7) 1574: 153420 Ra = 2 * (Ra) 1575: 025600 RX DATA = 0 1576: 056600 if not DAT SIGN goto 1600 1577: 025400 RX DATA = 1 1600: 035600 clear RX SHIFT/DRV RD 2F 1601: 010750 jsr 0750 1602: 020604 toggle NOP/DRV SEL HD0, toggle RX SHIFT 1603: 100050 q = (q - 1) 1604: 057574 if not DAT ZERO goto 1574 1605: 075214 if BUF IN DAT goto 1614 1606: 035600 clear RX SHIFT/DRV RD 2F 1607: 064213 if FLAG goto 1613 1610: 022200 set RX TR/DRV STEP 1611: 175444 Rf = (Rf - Rf - 1) 1612: 010337 jsr 0337 1613: 025601 RX DATA = 0, return 1614: 032600 BUF DAT = 0 1615: 154020 q = (Rb) 1616: 151410 Ra = (q) 1617: 134004 q = (R7 + R7) 1620: 001574 jmp 1574 1621: 032600 BUF DAT = 0 1622: 151410 Ra = (q) 1623: 134004 q = (R7 + R7) 1624: 001574 jmp 1574 1625: 022200 set RX TR/DRV STEP 1626: 032600 BUF DAT = 0 1627: 134004 q = (R7 + R7) 1630: 050633 if not 12 BIT goto 1633 1631: 032400 BUF DAT = 1 1632: 134020 q = (R7) 1633: 010337 jsr 0337 1634: 021400 clear RX ERROR/DRV WT GATE 1635: 024400 clear RX DONE/DRV ERASE 1636: 035600 clear RX SHIFT/DRV RD 2F 1637: 157420 Rb = 2 * (Rb) 1640: 043642 if not RX DATA goto 1642 1641: 155422 Rb = (Rb + 1) 1642: 100050 q = (q - 1) 1643: 057247 if DAT ZERO goto 1647 1644: 020604 toggle NOP/DRV SEL HD0, toggle RX SHIFT 1645: 010750 jsr 0750 1646: 001636 jmp 1636 1647: 075252 if BUF IN DAT goto 1652 1650: 020604 toggle NOP/DRV SEL HD0, toggle RX SHIFT 1651: 035601 clear RX SHIFT/DRV RD 2F, return 1652: 032600 BUF DAT = 0 1653: 154020 q = (Rb) 1654: 151410 Ra = (q) 1655: 134004 q = (R7 + R7) 1656: 001644 jmp 1644 1657: 010767 jsr 0767 1660: 011124 jsr 1124 1661: 032600 BUF DAT = 0 1662: 010471 jsr 0471 1663: 130340 q = (!R6 ^ q) 1664: 065740 if not DAT 00 goto 1740 1665: 020620 toggle NOP/DRV SEL HD0, wait 1666: 062270 if READ STROBE goto 1670 1667: 000450 jmp 0450 1670: 032000 BUF DAT = DRV SEP DAT 1671: 033200 set BUF WRT 1672: 037000 CRC = DRV SEP DAT 1673: 033400 clear BUF WRT 1674: 130020 q = (R6) 1675: 065731 if not DAT 00 goto 1731 1676: 020660 toggle NOP/DRV SEL HD0, inc SEC BUF ADR, wait 1677: 062301 if READ STROBE goto 1701 1700: 000450 jmp 0450 1701: 032000 BUF DAT = DRV SEP DAT 1702: 033200 set BUF WRT 1703: 037000 CRC = DRV SEP DAT 1704: 033400 clear BUF WRT 1705: 020660 toggle NOP/DRV SEL HD0, inc SEC BUF ADR, wait 1706: 062310 if READ STROBE goto 1710 1707: 000450 jmp 0450 1710: 032000 BUF DAT = DRV SEP DAT 1711: 033200 set BUF WRT 1712: 045703 if not SEC BUF OVF goto 1703 1713: 033400 clear BUF WRT 1714: 037060 CRC = DRV SEP DAT, inc SEC BUF ADR, wait 1715: 062317 if READ STROBE goto 1717 1716: 000450 jmp 0450 1717: 161460 Rc = (Rc - 1) 1720: 056714 if not DAT SIGN goto 1714 1721: 011246 jsr 1246 1722: 051326 if CRC ERR goto 1726 1723: 064725 if not FLAG goto 1725 1724: 101540 R0 = (R0 | q) 1725: 001500 jmp 1500 1726: 101422 R0 = (R0 + 1) 1727: 143010 q = 2 * q, R8 = 2 * (q) 1730: 001476 jmp 1476 1731: 020660 toggle NOP/DRV SEL HD0, inc SEC BUF ADR, wait 1732: 062334 if READ STROBE goto 1734 1733: 000450 jmp 0450 1734: 074317 if BUF ADRS 10 goto 1717 1735: 032000 BUF DAT = DRV SEP DAT 1736: 033200 set BUF WRT 1737: 001672 jmp 1672 1740: 001205 jmp 1205 1741: 155410 Rb = (q) 1742: 161506 Rc = (Rc - Rc) 1743: 047746 if not HOME goto 1746 1744: 161422 Rc = (Rc + 1) 1745: 001760 jmp 1760 1746: 022200 set RX TR/DRV STEP 1747: 022400 clear RX TR/DRV STEP 1750: 010643 jsr 0643 1751: 011762 jsr 1762 1752: 022200 set RX TR/DRV STEP 1753: 022400 clear RX TR/DRV STEP 1754: 010643 jsr 0643 1755: 011762 jsr 1762 1756: 155460 Rb = (Rb - 1) 1757: 057743 if not DAT ZERO goto 1743 1760: 030200 set DRV HD LD 1761: 151504 Ra = (Ra - Ra - 1) 1762: 100414 nop (const = 003) 1763: 100174 q = (d) 1764: 104440 const = 110 1765: 100050 q = (q - 1) 1766: 010747 jsr 0747 1767: 057765 if not DAT ZERO goto 1765 1770: 151460 Ra = (Ra - 1) 1771: 057762 if not DAT ZERO goto 1762 1772: 100415 nop (const = 003), return 1773: 001773 jmp 1773 1774: 001774 jmp 1774 1775: 001775 jmp 1775 1776: 001776 jmp 1776 1777: 001777 jmp 1777