;STEP CODE KEY COMMENT ;========================================================= ; PRIME 0000 [ CTL2 #004 ] -- CNTRL-2 SELECT DISK. #1 0001 [ A AND #00 ] -- A AND IM CLEAR A REG. 0002 [ LA #100 ] -- LA (ADDR = 01XX) M TO 256 1 0003 [ A TO M(+1) ] -- A TO M(+1) CLEAR 256-511 0004 [ BT S0 & #02 GO 003 ] -- B0TL BR. AD8 ON 1 0005 [ A TO M(+1) ] -- A TO M(+1) CLEAR 0-255 0006 [ BF S0 & #02 GO 005 ] -- B0FL BR. AD8 OFF 0007 [ A OR #03 ] -- A OR IM 03 TO A REG. 0008 [ LA #1E8 ] -- LA (ADDR = 01XX) M TO 488 0009 [ A TO M(N) ] -- A TO M(N) 03 TO 488 000A [ LA #1FF ] -- LA (ADDR = 01XX) M TO 511 000B [ A TO M(N) ] -- A TO M(N) 2ND 03 TO 511 ; FMT. 000C [ BT S1 & #40 GO 00E ] -- B1TH BR. CARRY ON ; NO FMT. 000D [ GO #1DE ] -- UB (IC = 01XX) BR. TO BEGINNING 1 000E [ ST1 AND #00 ] -- ST1 AND IM CLEAR CARRY 000F [ GO #230 ] -- UB (IC = 10XX) BR. TO 400 MSEC. DELAY 4 0010 [ BT S1 & #40 GO 012 ] -- B1TH BR. CARRY ON 0011 [ GO #000 ] -- UB (IC = 00XX) BR. TO PRIME 1 0012 [ GO #18F ] -- UB (IC = 01XX) BR. TO 1 SEC. DELAY ; WRITE FORMAT CONT. 6 0013 [ K ADD #01 ] -- K ADD IM K+1 0014 [ IF K<>0 GO #013 ] -- BR K <> 0 BR. <> 819.2 MSEC. 0015 [ CTL1 #026 ] -- CNTRL-1 PRESET CRC 0016 [ GO #03B ] -- UB (IC = 00XX) ; READ ROUTINE CONT. 4 0017 [ K AND #00 ] -- K AND IM CLEAR K REG. 1 0018 [ K ADD #01 ] -- K ADD IM K+1 0019 [ IF KH<>#B GO 018 ] -- BR K <> MH BR. <> 563.2 MSEC. 001A [ K AND #00 ] -- K AND IM CLEAR K REG. 001B [ GO #07A ] -- UB (IC = 00XX) ; ZERO HEAD 001C [ CTL2 #3FF ] -- 001D [ CTL2 #3FF ] -- 001E [ CTL2 #3FF ] -- 4 001F [ CTL2 #023 ] -- CNTRL-2 START 40 MSEC. 1 0020 [ BT S0 & #04 GO 020 ] -- B0TL BR. 40 MSEC. ON 4 0021 [ BF S1 & #20 GO 025 ] -- B1FH BR. = TRACK 00 0022 [ CTL1 #010 ] -- CNTRL-1 SET DIRECTION 0023 [ CTL1 #050 ] -- CNTRL-1 STEP -> TRACK 00 0024 [ GO #01F ] -- UB (IC = 00XX) 1 0025 [ BT S1 & #40 GO 027 ] -- B1TH BR. CARRY ON 0026 [ GO #126 ] -- UB (IC = 01XX) BR. READ/WRITE 1 0027 [ GO #1CB ] -- UB (IC = 01XX) 5 0028 [ BT S1 & #10 GO 028 ] -- B1TH BR. SECTOR MARK ON 1 0029 [ BF S1 & #10 GO 029 ] -- B1FH BR. SECTOR MARK OFF 002A [ GO #058 ] -- UB (IC = 00XX) 2 002B [ GO #220 ] -- UB (IC = 10XX) 002C [ CTL2 #3FF ] -- 002D [ CTL2 #3FF ] -- 002E [ CTL2 #3FF ] -- 002F [ CTL2 #3FF ] -- 5 0030 [ BF S1 & #10 GO 030 ] -- B1FH BR. SECTOR MARK OFF 4 0031 [ BT K & #80 GO 034 ] -- BKTH BR. TO WRITE FORMAT 0032 [ GO #058 ] -- UB (IC = 00XX) BR. TO READ FORMAT ; FORMAT WRITE 5 0033 [ BF S1 & #10 GO 033 ] -- B1FH BR. SECTOR MARK OFF 1 0034 [ LA #1D4 ] -- LA (ADDR = 01XX) WRITE FORMAT 0035 [ CTL1 #026 ] -- CNTRL-1 WRITE GATE ON 0036 [ CTL1 #026 ] -- CNTRL-1 PRESET CRC 0037 [ K AND #00 ] -- K AND IM CLEAR K REG. 2 0038 [ K ADD #01 ] -- K ADD IM K+1 0039 [ IF K<>0 GO #038 ] -- BR K <> 0 BR. <> 819.2 MSEC. 003A [ GO #013 ] -- UB (IC = 00XX) 5 003B [ BT S0 & #02 GO 03B ] -- B0TL BR. AD8 ON 1 003C [ BF S0 & #02 GO 03C ] -- B0FL BR. AD8 OFF 1 003D [ K ADD #01 ] -- K ADD IM K+1 003E [ BF K & #40 GO 03D ] -- BKFH BR. <> 103.4 MSEC. 003F [ K AND #00 ] -- K AND IM CLEAR K REG. 0040 [ CTL1 #024 ] -- CNTRL-1 STOP WRITE ; SECTORS COUNTED DURING FORMAT WRITE 0041 [ NOOP ] -- NOOP(N) 0042 [ NOOP ] -- NOOP(N) 0043 [ LA #1EA ] -- LA (ADDR = 01XX) SECTOR LOCATION 0044 [ M(N) TO A ] -- M TO A(N) SECTOR LOC. TO A 0045 [ A XOR #09 ] -- A XOR IM 0046 [ IF AL==#0 GO 04D ] -- BR A = ML BR. = SECTOR 9 0047 [ M(N) TO A ] -- M TO A(N) SECTOR TO A 0048 [ A ADD #01 ] -- A ADD IM SECTOR +1 0049 [ A TO M(N) ] -- A TO M(N) NEXT SECTOR TO M 004A [ GO #033 ] -- UB (IC = 00XX) BR. TO WRITE NEXT SECTOR ; TRACKS COUNTED DURING FORMAT WRITE 004B [ NOOP ] -- NOOP(N) 004C [ NOOP ] -- NOOP(N) 1 004D [ A TO M(-1) ] -- A TO M(-1) SECTOR 0 TO M 004E [ M(N) TO A ] -- M TO A(N) TRACK LOC. TO A 004F [ A ADD #01 ] -- A ADD IM TRACK +1 0050 [ BT A & #20 GO 056 ] -- BATH BR. = TRACK 32 1 0051 [ A TO M(N) ] -- A TO M(N) NEXT TRACK TO M 0052 [ CTL1 #044 ] -- CNTRL-1 STEP -> TRACK 34 0053 [ CTL2 #023 ] -- CNTRL-2 START 40 MSEC. 1 0054 [ BT S0 & #04 GO 054 ] -- B0TL BR. 40 MSEC. ON 0055 [ GO #1CB ] -- UB (IC = 01XX) BR. TO SECTOR 0 NEXT TRACK 1 0056 [ IF AL<>#3 GO 051 ] -- BR A <> ML BR. TRACK <> 35 0057 [ GO #1CC ] -- UB (IC = 01XX) BR. TO READ SECTOR 0 ; READ HEADER BYTES AND STORE IN MEMORY 4 0058 [ LA #120 ] -- LA (ADDR = 01XX) TRACK BYTE LOCATION 0059 [ K AND #00 ] -- K AND IM CLEAR K REG. 1 005A [ K ADD #01 ] -- K ADD IM K+1 005B [ IF KH<>#C GO 05A ] -- BR K <> MH 005C [ CTL1 #015 ] -- CNTRL-1 READ GATE ON 005D [ CTL1 #035 ] -- CNTRL-1 PRESET CRC 1 005E [ BT S0 & #01 GO 05E ] -- B0TL BR. WRDY = 1 005F [ A TO M(+1) ] -- A TO M(+1) TRACK BYTE TO M 1 0060 [ BF S0 & #01 GO 060 ] -- B0FL BR. WRDY = 0 0061 [ A TO M(+1) ] -- A TO M(+1) SECTOR BYTE TO M 0062 [ CTL1 #035 ] -- CNTRL-1 PRESET CRC ; COMPARE HEADER BYTES WITH REQUESTED ADDRESS 0063 [ LA #120 ] -- LA (ADDR = 01XX) TRACK BYTE 0064 [ M(N) TO K ] -- M TO K(N) TRACK BYTE TO K 0065 [ LA #1E9 ] -- LA (ADDR = 01XX) TRACK ADDRESS 0066 [ K XOR M(+1)RTB ] -- K XOR M(+1)RTB XOR REQUESTED TRACK WITH TRACK READ 0067 [ IF K<>0 GO #0A3 ] -- BR K <> 0 TRACK ERROR 0068 [ M(N) TO K ] -- M TO K(N) SECTOR ADDRESS TO K 0069 [ LA #121 ] -- LA (ADDR = 01XX) SECTOR BYTE 006A [ K XOR M(+1)RTB ] -- K XOR M(+1)RTB XOR REQUESTED SECTOR WITH SECTOR READ 006B [ IF K<>0 GO #0A8 ] -- BR K <> 0 SECTOR ERROR ; 006C [ LA #131 ] -- LA (ADDR = 01XX) STATUS LOCATION 006D [ K OR #80 ] -- K OR IM CRC ERROR BIT 006E [ K OR M(-1) ] -- K OR M(-1) CRC ERROR TO M 006F [ K AND #00 ] -- K AND IM CLEAR K REG. 0070 [ BT S1 & #40 GO 075 ] -- B1TH BR. CARRY ON 0071 [ LA #110 ] -- LA (ADDR = 01XX) 1ST ADDRESS BYTE 0072 [ M(N) TO K ] -- M TO K(N) 1ST BYTE TO K 0073 [ BF K & #40 GO 075 ] -- BKFH BR. IF READ 0074 [ GO #17B ] -- UB (IC = 01XX) BR. TO WRITE ; READ ROUTINE INCLUDING FORMAT 1 0075 [ K AND #00 ] -- K AND IM CLEAR K REG. 0076 [ LA #000 ] -- LA (ADDR = 00XX) DATA BUFFER 1 0077 [ K ADD #01 ] -- K ADD IM K+1 4 0078 [ IF KH<>#B GO 077 ] -- BR K <> MH BR. <> 563.2 MSEC. 0079 [ GO #017 ] -- UB (IC = 00XX) 4 007A [ CTL1 #025 ] -- CNTRL-1 PRESET CRC 1 007B [ BT S0 & #01 GO 07B ] -- B0TL BR. WRDY = 1 007C [ A TO M(+1) ] -- A TO M(+1) DATA TO MEMORY 007D [ GO #080 ] -- UB (IC = 00XX) BR. TO CHECK AD8 4 007E [ K OR #04 ] -- K OR IM 007F [ GO #0C4 ] -- UB (IC = 00XX) BR. SEND CRC ERROR 4 0080 [ BT S0 & #02 GO 085 ] -- B0TL BR. AD8 ON 1 0081 [ BF S0 & #01 GO 081 ] -- B0FL BR. WRDY = 0 0082 [ A TO M(+1) ] -- A TO M(+1) DATA TO MEMORY 0083 [ BT S0 & #02 GO 085 ] -- B0TL BR. AD8 ON 0084 [ GO #078 ] -- UB (IC = 00XX) BR. TO WAIT WRDY 1 0085 [ BT S0 & #01 GO 085 ] -- B0TL BR. WRDY = 1 (1ST CRC) 0086 [ A TO M(+1) ] -- A TO M(+1) CRC TO M 1 0087 [ BF S0 & #01 GO 087 ] -- B0FL BR. WRDY = 0 (2ND CRC) 0088 [ CTL1 #010 ] -- CNTRL-1 STOP READ ; CHECK CRC 0089 [ M(+1) TO A ] -- M TO A(+1) 1ST CRC TO A 008A [ IF A<>0 GO #02B ] -- BR A <> 0 BR. IF CRC ERROR 008B [ M(N) TO A ] -- M TO A(N) 2ND CRC TO A 008C [ IF A<>0 GO #02B ] -- BR A <> 0 BR. IF CRC ERROR 008D [ BT S1 & #40 GO 08F ] -- B1TH BR. CARRY ON ; SECTORS COUNTED FORMAT READ 008E [ GO #159 ] -- UB (IC = 01XX) 1 008F [ LA #1EA ] -- LA (ADDR = 01XX) SECTOR LOCATION 0090 [ M(N) TO A ] -- M TO A(N) SECTOR TO A 0091 [ A XOR #09 ] -- A XOR IM 0092 [ IF AL==#0 GO 097 ] -- BR A = ML BR. = SECTOR 9 0093 [ M(N) TO A ] -- M TO A(N) SECTOR TO A 0094 [ A ADD #01 ] -- A ADD IM SECTOR +1 0095 [ A TO M(N) ] -- A TO M(N) NEXT SECTOR TO M 0096 [ GO #030 ] -- UB (IC = 00XX) BR. TO READ NEXT SECTOR ; TRACKS COUNTED FORMAT READ 1 0097 [ A TO M(-1) ] -- A TO M(-1) SECTOR 0 TO M 0098 [ M(N) TO A ] -- M TO A(N) TRACK LOC. TO A 0099 [ A ADD #FF ] -- A ADD IM TRACK -1 009A [ A TO M(N) ] -- A TO M(N) NEXT TRACK TO M 009B [ A XOR #FF ] -- A XOR IM 009C [ IF A<>0 GO #09F ] -- BR A <> 0 BR. <> TRACK 0 009D [ ST1 AND #00 ] -- ST1 AND IM CLEAR CARRY 009E [ GO #000 ] -- UB (IC = 00XX) BR. TO PRIME 2 009F [ CTL1 #054 ] -- CNTRL-1 STEP HEAD -> TRACK 0 00A0 [ CTL2 #023 ] -- CNTRL-2 START 40 MSEC. 1 00A1 [ BT S0 & #04 GO 0A1 ] -- B0TL BR. 40 MSEC. ON 00A2 [ GO #1CC ] -- U8 (IC = 01XX) BR. TO SECTOR 0 NEXT TRACK ; ERROR ROUTINE 2 00A3 [ CTL1 #004 ] -- CNTRL-1 STOP READ 00A4 [ LA #131 ] -- LA (ADDR = 01XX) STATUS LOCATION 00A5 [ M(N) TO A ] -- M TO A(N) STATUS TO A 00A6 [ A OR #08 ] -- A OR IM TRACK ERROR BIT 00A7 [ A TO M(N) ] -- A TO M(N) TRACK ERROR TO M 2 00A8 [ CTL1 #004 ] -- CNTRL-1 STOP READ 00A9 [ K AND #00 ] -- K AND IM CLEAR K REG. 00AA [ LA #130 ] -- LA (ADDR = 01XX) ERROR COUNT 00AB [ M(N) TO A ] -- M TO A(N) ERROR COUNT TO A 00AC [ A ADD #01 ] -- A ADD IM A+1 00AD [ A TO M(+1) ] -- A TO M(+1) ERROR COUNT TO M 00AE [ NOOP ] -- NOOP(N) 00AF [ NOOP ] -- NOOP(N) 00B0 [ BF S1 & #40 GO 0B2 ] -- B1FH BR. CARRY OFF 00B1 [ GO #1A3 ] -- U8 (IC = 01XX) 1 00B2 [ IF AH==#2 GO 0B4 ] -- BR A = MH BR. 32 ERRORS 00B3 [ GO #028 ] -- UB (IC = 00XX) BR. REREAD SECTOR 1 00B4 [ M(N) TO A ] -- M TO A(N) STATUS TO A 00B5 [ K AND #00 ] -- K AND IM CLEAR K REG. 00B6 [ BF A & #80 GO 0B8 ] -- BAFH BR. FORMAT BYTE ERROR 00B7 [ GO #07E ] -- UB (IC = 00XX) 1 00B8 [ BT A & #08 GO 0BB ] -- BATL BR. TRACK ERROR 1 00B9 [ K OR #02 ] -- K OR IM SECTOR ERROR BIT 00BA [ GO #0C4 ] -- UB (IC = 00XX) SECTOR ERROR TO 2200 1 00BB [ BT A & #10 GO 0B9 ] -- BATH BR. IF HEAD MOVED 00BC [ A OR #10 ] -- A OR IM 00BD [ A TO M(N) ] -- A TO M(N) HEAD MOVED STATUS TO M 00BE [ LA #110 ] -- LA (ADDR = 01XX) 1ST ADDRESS BYTE 00BF [ M(N) TO A ] -- M TO A(N) 1ST ADDRESS BYTE TO A 00C0 [ A OR #20 ] -- A OR IM 00C1 [ GO #111 ] -- UB (IC = 01XX) BR. TO ZERO HEAD ; REINITIALIZE 4 00C2 [ NOOP ] -- NOOP(N) 00C3 [ ST1 AND #00 ] -- ST1 AND IM CLEAR CARRY 4 00C4 [ LA #130 ] -- LA (ADDR = 01XX) ERROR LOCATION 00C5 [ A AND #00 ] -- A AND IM CLEAR A REG. 00C6 [ K AND #0F ] -- K AND IM MASK OUT HIGH ORDER 1 00C7 [ A TO M(+1) ] -- A TO M(+1) ERROR COUNT 00C8 [ K ADD #10 ] -- K ADD IM 00C9 [ IF KH<>#9 GO 0C7 ] -- BR K <> MH 00CA [ LA #1E9 ] -- LA (ADDR = 01XX) TRACK LOCATION 00CB [ A TO M(+1) ] -- A TO M(+1) CLEAR TRACK 00CC [ K AND #0F ] -- K AND IM MASK OUT HIGH ORDER 00CD [ CTL2 #000 ] -- CNTRL-2 CLEAR SELECT ERROR: couldn't translate 0xbd32 at 0x0000 00CF [ K TO M(N) ] -- K TO M(N) 00D0 [ BT S0 & #10 GO 0D2 ] -- B0TH BR. NOT REINITIALIZE 00D1 [ GO #1D8 ] -- UB (IC = 01XX) 1 00D2 [ BF S0 & #80 GO 0D2 ] -- B0FH WAIT KBD 00D3 [ CTL2 #013 ] -- CNTRL-2 STROBE TO 2200 00D4 [ GO #1DE ] -- UB (IC = 01XX) ; 3 ADDRESS BYTES FROM 2200 5 00D5 [ BF S0 & #20 GO 0D5 ] -- B0FH LOOK END STROBE 00D6 [ BT S0 & #10 GO 0D8 ] -- B0TH BR. NOT REINITIALIZE 00D7 [ GO #0C2 ] -- UB (IC = 00XX) BR. TO REINITIALIZE 1 00D8 [ NOOP (+1) ] -- NOOP(+1) MEMORY +1 00D9 [ K TO M(N) ] -- K TO M(N) ADDRESS BYTE TO M 00DA [ A ADD #01 ] -- A ADD IM A+1 00DB [ BF S0 & #80 GO 0D8 ] -- B0FH WAIT KBD 00DC [ CTL2 #013 ] -- CNTRL-2 STROBE TO 2200 00DD [ BT A & #03 GO 0DF ] -- BATL BR. = 3RD BYTE 00DE [ GO #1EE ] -- UB (IC = 01XX) LOOK NEXT BYTE 1 00DF [ BT S0 & #04 GO 0DF ] -- B0TL BR. 40 MSEC. ON 00E0 [ NOOP ] -- NOOP(N) DELAY ; CHECK FOR ILLEGAL ADDRESS 00E1 [ LA #110 ] -- LA (ADDR = 01XX) 1ST ADDRESS BYTE 00E2 [ M(+1) TO A ] -- M TO A(+1) 1ST BYTE TO A 00E3 [ IF AL<>#0 GO 0E7 ] -- BR A <> ML BR. ILLEGAL ADDRESS 00E4 [ M(+1) TO A ] -- M TO A(+1) 2ND BYTE TO A 0DE5 [ IF AH<>#0 GO DE7 ] -- BR A <> MH BR. ILLEGAL ADDRESS 00E6 [ GO #1B5 ] -- UB (IC = 01XX) BR. NOT ILL. ADDR. ; ILL. ADDR. TO 2200 5 00E7 [ K AND #00 ] -- K AND IM CLEAR K REG. 00E8 [ K OR #01 ] -- K OR IM 01 -> K 00E9 [ GO #0C4 ] -- UB (IC = 00XX) ILL. ADDR. TO 2200 ; TRACK + SECTOR CONVERSION 4 00EA [ LA #111 ] -- LA (ADDR = 01XX) 2ND ADDRESS BYTE 00EB [ M(+1) TO A ] -- M TO A(+1) 2ND BYTE TO A 00EC [ M(N) TO K ] -- M TO K(N) 3RD BYTE TO K 00ED [ A TO M(-1) ] -- A TO M(-1) 00EE [ K TO M(N) ] -- K TO M(N) 4 00EF [ A AND #00 ] -- A AND IM CLEAR A REG. 00F0 [ A OR #F6 ] -- A OR IM F6 -> A 00F1 [ K OR #FF ] -- K OR IM FF -> K 00F2 [ ST1 AND #00 ] -- ST1 AND IM CLEAR CARRY 00F3 [ LA #111 ] -- LA (ADDR = 01XX) 00F4 [ A ADC M(+1)RTB ] -- A PWC M(+1)RTB RESULT TO A 00F5 [ K ADC M(+1)RTB ] -- K PWC M(+1)RTB RESULT TO K 00F6 [ GO #1F3 ] -- UB (IC = 01XX) 4 00F7 [ LA #1E9 ] -- LA (ADDR = 01XX) 00F8 [ M(N) TO K ] -- M TO K(N) 00F9 [ K ADD #01 ] -- K ADD IM K+1 00FA [ K TO M(N) ] -- K TO M(N) 00FB [ GO #0EF ] -- UB (IC = 00XX) 4 00FC [ A ADD #0A ] -- A ADD IM A+10 00FD [ LA #1EA ] -- LA (ADDR = 01XX) SECTOR LOC. 00FE [ A TO M(N) ] -- A TO M(N) 00FF [ GO #240 ] -- UB (IC = 10XX) ; SELECT DESIRED DISK AND TURN MOTOR ON (LOAD HEAD) 4 0100 [ M(N) TO A ] -- M TO A(N) 1ST BYTE TO A 0101 [ BT A & #10 GO 107 ] -- BATH BR. DISK #2 0102 [ BF S0 & #08 GO 105 ] -- B0FL BR. MOTOR OFF (#1) 0103 [ CTL2 #001 ] -- CNTRL-2 SELECT #1 0104 [ GO #200 ] -- UB (IC = 10XX) 1 0105 [ CTL2 #001 ] -- CNTRL-2 SELECT #1 0106 [ GO #190 ] -- UB (IC = 01XX) BR. TO 1 SEC. DELAY 1 0107 [ BF S0 & #40 GO 10A ] -- B0FH BR. MOTOR OFF (#2) 0108 [ CTL2 #002 ] -- CNTRL-2 SELECT #2 0109 [ GO #210 ] -- UB (IC = 10XX) 1 010A [ CTL2 #002 ] -- CNTRL-2 SELECT #2 010B [ GO #190 ] -- UB (IC = 01XX) ; CHECK FOR PLATTER 4 010C [ CTL2 #023 ] -- CNTRL-2 START 40 MSEC. 1 010D [ BT S0 & #04 GO 10F ] -- B0TL BR. 40 MSEC. ON 010E [ GO #0E7 ] -- UB (IC = 00XX) ERROR 1 010F [ BF S1 & #10 GO 10D ] -- B1FH BR. SECTOR MARK OFF 1 0110 [ BT S0 & #04 GO 110 ] -- B0TL BR. 40 MSEC. ON ; SELECT APPROPRIATE TRACK ADDRESS AND ; CHECK IF HEAD SHOULD BE ZEROED 4 0111 [ NOOP ] -- NOOP(N) 0112 [ LA #1E9 ] -- LA (ADDR = 01XX) TRACK ADDRESS 0113 [ M(N) TO K ] -- M TO K(N) TRACK TO K 0114 [ NOOP ] -- NOOP(N) 0115 [ BT A & #10 GO 11C ] -- BATH BR. DISK #2 0116 [ LA #125 ] -- LA (ADDR = 01XX) DISK #1 TRACK LOC. 4 0117 [ BT A & #20 GO 11E ] -- BATH TRACK ERROR, ZERO HEAD 0118 [ M(N) TO A ] -- M TO A(N) TRACK LOC. TO A 0119 [ BT A & #80 GO 11D ] -- BATH ALREADY ZEROED HEAD 011A [ GO #021 ] -- UB (IC = 00XX) BR. TO ZERO HEAD 011B [ NOOP ] -- NOOP(N) 1 011C [ GO #123 ] -- UB (IC = 01XX) 1 011D [ GO #125 ] -- UB (IC = 01XX) 1 011E [ A AND #00 ] -- A AND IM CLEAR A REG. 011F [ A TO M(N) ] -- A TO M(N) SET TRACK LOC. TO 00 0120 [ GO #021 ] -- UB (IC = 00XX) BR. TO ZERO HEAD 0121 [ NOOP ] -- NOOP(N) 0122 [ NOOP ] -- NOOP(N) 4 0123 [ LA #126 ] -- LA (ADDR = 01XX) DISK #2 TRACK LOC. 0124 [ GO #117 ] -- UB (IC = 01XX) ; STEP HEAD TO DESIRED TRACK 4 0125 [ A AND #7F ] -- A AND IM MASK OUT 80 BIT 4 0126 [ K OR #80 ] -- K OR IM 80 -> K (HEAD ZEROED) 0127 [ K TO M(N) ] -- K TO M(N) 0128 [ A XOR #7F ] -- A XOR IM 0129 [ A ADC M(+1)RTB ] -- A PWC M(+1)RTB RESULT TO A 012A [ BT S1 & #40 GO 12D ] -- B1TH BR. CARRY ON 012B [ A XOR #FF ] -- A XOR IM 012C [ GO #1D1 ] -- UB (IC = 01XX) 1 012D [ A ADD #01 ] -- A ADD IM A+1 4 012E [ CTL1 #000 ] -- CNTRL-1 SET DIRECTION -> TRACK 34 012F [ CTL1 #040 ] -- CNTRL-1 STEP HEAD 4 0130 [ CTL2 #023 ] -- CNTRL-2 START 40 MSEC. 1 0131 [ BT S0 & #04 GO 131 ] -- B0TL BR. 40 MSEC. ON 0132 [ A ADD #FF ] -- A ADD IM A-1 0133 [ IF A==0 GO #139 ] -- BR A = 0 4 0134 [ BF S1 & #40 GO 136 ] -- B1FH BR. CARRY OFF 0135 [ GO #12E ] -- UB (IC = 01XX) 1 0136 [ CTL1 #010 ] -- CNTRL-1 SET DIRECTION -> TRACK 00 0137 [ CTL1 #050 ] -- CNTRL-1 STEP HEAD 0138 [ GO #130 ] -- UB (IC = 01XX) 2 0139 [ ST1 AND #00 ] -- ST1 AND IM CLEAR CARRY 013A [ CTL2 #023 ] -- CNTRL-2 START 40 MSEC. 1 013B [ BT S0 & #04 GO 13B ] -- B0TL BR. 40 MSEC. ON ; HEAD MOVED PREVIOUSLY? 2 013C [ LA #131 ] -- LA (ADDR = 01XX) STATUS LOCATION 013D [ M(N) TO A ] -- M TO A(N) STATUS TO A 013E [ NOOP ] -- NOOP(N) 013F [ NOOP ] -- NOOP(N) ; ANSWER LAST ADDRESS BYTE 0140 [ BF A & #10 GO 143 ] -- BAFH BR. HEAD NOT MOVED 0141 [ GO #028 ] -- UB (IC = 00XX) BR. READ/WRITE 1 0142 [ GO #0C2 ] -- UB (IC = 00XX) BR. TO REINT. 1 0143 [ LA #110 ] -- LA (ADDR = 01XX) 1ST ADDRESS BYTE 0144 [ M(-1) TO A ] -- M TO A(-1) 1 0145 [ BF S0 & #80 GO 145 ] -- B0FH WAIT KBD 0146 [ CTL2 #013 ] -- CNTRL-2 STROBE TO 2200 0147 [ BT A & #40 GO 14C ] -- BATH BR. IF WRITE ; DATA FROM CPU (WRITE) 1 0148 [ BT S0 & #20 GO 148 ] -- B0TH WAIT 2200 STROBE 1 0149 [ BF S0 & #20 GO 149 ] -- B0FH WAIT END STROBE 014A [ BF S0 & #10 GO 142 ] -- B0FH REINITIALIZE 014B [ GO #157 ] -- UB (IC = 01XX) 1 014C [ A AND #00 ] -- A AND IM CLEAR A REG. 014D [ LA #000 ] -- LA (ADDR = 00XX) DATA BUFFER 5 014E [ BT S0 & #20 GO 14E ] -- B0TH WAIT 2200 STROBE 1 014F [ BF S0 & #20 GO 14F ] -- B0FH WAIT END STROBE 0150 [ BT S0 & #10 GO 152 ] -- B0TH BR. NOT REINT. 0151 [ GO #0C2 ] -- UB (IC = 00XX) BR. TO REINT. 1 0152 [ K TO M(N) ] -- K TO M(N) DATA BYTE TO M ; SEND DATA AND LRC ON READ 0153 [ GO #1C0 ] -- UB (IC = 01XX) BR. TO GENERATE LRC 0154 [ NOOP ] -- NOOP(N) 0155 [ NOOP ] -- NOOP(N) 0156 [ NOOP ] -- NOOP(N) 4 0157 [ CTL1 #004 ] -- CNTRL-1 STOP READ 0158 [ GO #028 ] -- UB (IC = 00XX) BR. TO WRITE 4 0159 [ K AND #00 ] -- K AND IM CLEAR K REG. 015A [ LA #110 ] -- LA (ADDR = 01XX) 1ST ADDRESS BYTE 015B [ M(-1) TO A ] -- M TO A(-1) 1 015C [ BF S0 & #80 GO 15C ] -- B0FH WAIT KBD 015D [ CTL2 #013 ] -- CNTRL-2 STROBE TO 2200 015E [ NOOP ] -- NOOP(N) DELAY 015F [ NOOP ] -- NOOP(N) DELAY 0160 [ NOOP ] -- NOOP(N) DELAY 0161 [ LA #000 ] -- LA (ADDR = 00XX) DATA BUFFER 0162 [ BT A & #80 GO 16E ] -- BATH BR. IF COMPARE 0163 [ A AND #00 ] -- A AND IM CLEAR A REG. 1 0164 [ BF S0 & #80 GO 164 ] -- B0FH WAIT KBD 0165 [ CTL2 #013 ] -- CNTRL-2 STROBE TO 2200 0166 [ NOOP ] -- NOOP(N) DELAY 0167 [ NOOP ] -- NOOP(N) DELAY 0168 [ A ADD M(+1)RTB ] -- A ADD M(+1)RTB GENERATE LRC 0169 [ BF S0 & #02 GO 164 ] -- B0FL BR. AD8 OFF 016A [ A TO M(N) ] -- A TO M(N) LRC TO MEMORY 1 016B [ BF S0 & #80 GO 16B ] -- B0FH WAIT KBD 016C [ CTL2 #013 ] -- CNTRL-2 LRC TO 2200 016D [ GO #1DE ] -- UB (IC = 01XX) BR. TO BEGINNING ; DATA FROM 2200 FOR WRITE COMPARE 5 016E [ BT S0 & #20 GO 16E ] -- B0TH WAIT 2200 STROBE 1 016F [ BF S0 & #20 GO 16F ] -- B0FH WAIT END STROBE 0170 [ K XOR M(+1)RTB ] -- K XOR M(+1)RTB XOR DATA READ WITH DATA FROM 2200 (RESULT TO K) 0171 [ IF K==0 GO #173 ] -- BR K = 0 BR. DATA COMPARE 0172 [ A OR #FF ] -- A OR IM 2 0173 [ BT S0 & #02 GO 175 ] -- B0TL BR. AD8 ON 0174 [ GO #16E ] -- UB (IC = 01XX) BR. TO COMPARE 1 0175 [ BT S0 & #20 GO 175 ] -- B0TH WAIT 2200 STROBE 1 0176 [ BF S0 & #20 GO 176 ] -- B0FH WAIT END STROBE 0177 [ IF AL==#0 GO 179 ] -- BR A = ML BR. NO ERROR ON COMPARE 0178 [ GO #0E7 ] -- UB (IC = 00XX) BR. SEND ERROR 1 0179 [ K AND #00 ] -- K AND IM CLEAR K REG. 017A [ GO #18A ] -- UB (IC = 01XX) ; WRITE ROUTINE 4 017B [ CTL1 #004 ] -- CNTRL-1 STOP READ 017C [ A AND #00 ] -- A AND IM CLEAR A REG. 017D [ K AND #00 ] -- K AND IM CLEAR K REG. 1 017E [ K ADD #01 ] -- K ADD IM K+1 017F [ IF KH<>#9 GO 17E ] -- BR K <> MH BR. <> 460.8 MSEC. 0180 [ GO #1D3 ] -- UB (IC = 01XX) 4 0181 [ CTL1 #026 ] -- CNTRL-1 WRITE GATE ON 0182 [ CTL1 #026 ] -- CNTRL-1 PRESET CRC 1 0183 [ BF S1 & #10 GO 186 ] -- B1FH BR. SECTOR MARK ON 0184 [ CTL1 #000 ] -- CNTRL-1 STOP WRITE 1 0185 [ GO #0E7 ] -- UB (IC = 00XX) BR. TO SEND ERROR 1 0186 [ BT S0 & #02 GO 183 ] -- B0TL BR. AD8 ON 0187 [ NOOP ] -- NOOP(N) 1 0188 [ BF S1 & #10 GO 188 ] -- B1FH BR. SECTOR MARK OFF 0189 [ CTL1 #000 ] -- CNTRL-1 STOP WRITE 4 018A [ BF S0 & #02 GO 185 ] -- B0FL BR. AD8 OFF 018B [ NOOP ] -- NOOP(N) 018C [ K AND #00 ] -- K AND IM CLEAR K REG. 018D [ GO #0C4 ] -- UB (IC = 00XX) LAST BYTE TO 2200 018E [ NOOP ] -- NOOP(N) ; 1 SEC. MOTOR ON DELAY 4 018F [ CTL2 #005 ] -- CNTRL-2 SELECT DISK #1 4 0190 [ K AND #00 ] -- K AND IM CLEAR K REG. 1 0191 [ CTL2 #023 ] -- CNTRL-2 START 40 MSEC. 1 0192 [ BT S0 & #04 GO 192 ] -- B0TL BR. 40 MSEC. ON 0193 [ K ADD #01 ] -- K ADD IM K+1 0194 [ IF KH<>#1 GO 191 ] -- BR K <> MH 0195 [ IF KL<>#4 GO 191 ] -- BR K <> ML BR. <> 1 SEC. 0196 [ BT S1 & #40 GO 198 ] -- B1TH BR. CARRY ON 0197 [ GO #10C ] -- UB (IC = 01XX) BR. READ/WRITE ; COUNT FORMAT RETRIES 1 0198 [ GO #01F ] -- UB (IC = 00XX) BR. FORMAT 0199 [ NOOP ] -- NOOP(N) 019A [ NOOP ] -- NOOP(N) 019B [ BT S1 & #40 GO 19D ] -- B1TH BR. CARRY ON 019C [ GO #0E7 ] -- UB (IC = 00XX) ERROR TO 2200 1 ERROR: couldn't translate 0xbd33 at 0x0000 019E [ M(N) TO A ] -- M TO A(N) 019F [ A ADD #01 ] -- A ADD IM A+1 01A0 [ A TO M(N) ] -- A TO M(N) 01A1 [ BT A & #04 GO 1A3 ] -- BATL BR. = 4 RETRIES 01A2 [ GO #1B0 ] -- UB (IC = 01XX) ; FLASH FORMAT LIGHT 5 01A3 [ A AND #00 ] -- A AND IM CLEAR A REG. 1 01A4 [ A ADD #01 ] -- A ADD IM A+1 01A5 [ CTL2 #023 ] -- CNTRL-2 START 40 MSEC. 1 01A6 [ BT S0 & #04 GO 1A6 ] -- B0TL BR. 40 MSEC. ON 01A7 [ IF AL<>#F GO 1A4 ] -- BR A <> ML 01A8 [ A AND #00 ] -- A AND IM CLEAR A REG. 01A9 [ CTL2 #000 ] -- CNTRL-2 TURN OFF DISK #1 1 01AA [ A ADD #01 ] -- A ADD IM A+1 01AB [ CTL2 #023 ] -- CNTRL-2 START 40 MSEC. 1 01AC [ BT S0 & #04 GO 1AC ] -- B0TL BR. 40 MSEC. ON 01AD [ IF AL<>#F GO 1AA ] -- BR A <> ML 01AE [ CTL2 #001 ] -- CNTRL-2 SELECT DISK #1 01AF [ GO #1A3 ] -- UB (IC = 01XX) ; RETRY FORMAT 4 01B0 [ A AND #00 ] -- A AND IM CLEAR A REG. 01B1 [ LA #1E9 ] -- LA (ADDR = 01XX) TRACK LOC. 01B2 [ A TO M(+1) ] -- A TO M(+1) CLEAR TRACK 01B3 [ A TO M(+1) ] -- A TO M(+1) CLEAR SECTOR 01B4 [ GO #01F ] -- UB (IC = 00XX) ; ILLEGAL ADDRESS? 4 01B5 [ BF A & #0E GO 1B7 ] -- BAFL BR. <> ILL. ADDR. 1 01B6 [ GO #0E7 ] -- UB (IC = 00XX) BR. TO ERROR 1 01B7 [ BF A & #01 GO 1BC ] -- BAFL BR. <> ILL. ADDR. 01B8 [ A AND #00 ] -- A AND IM CLEAR A REG. 01B9 [ A OR #A2 ] -- A OR IM 01BA [ A ADC M(+1)RTB ] -- A PWC M(+l)RTB RESULT TO A 01BB [ BT S1 & #40 GO 1B6 ] -- B1TH BR. CARRY ON 1 01BC [ GO #0EA ] -- UB (IC = 00XX) TO CONVERSION ; GENERATE LRC 01BD [ CTL2 #3FF ] -- 01BE [ CTL2 #3FF ] -- 01BF [ CTL2 #3FF ] -- 4 01C0 [ A ADD M(+1)RTB ] -- A ADD M(+1)RTB GENERATE LRC 01C1 [ BT S0 & #02 GO 1C3 ] -- B0TL BR. AD8 ON 01C2 [ GO #14E ] -- UB (IC = 01XX) BR. TO NEXT BYTE 1 01C3 [ BT S0 & #20 GO 1C3 ] -- B0TH WAIT 2200 STROBE 1 01C4 [ BF S0 & #20 GO 1C4 ] -- B0FH WAIT END STROBE 01C5 [ LA #134 ] -- LA (ADDR = 01XX) LRC LOCATION 01C6 [ K TO M(N) ] -- K TO M(N) LRC TO MEM. 01C7 [ A XOR M(+1)RTB ] -- A XOR M(+1)RTB LRC BYTE FROM 2200 WITH LRC BYTE GENERATED (RESULT TO A) 01C8 [ IF A<>0 GO #1CA ] -- BR A <> 0 BR. LRC ERROR 01C9 [ GO #157 ] -- UB (IC = 01XX) BR. TO WRITE 2 01CA [ GO #0E7 ] -- UB (IC = 00XX) BR. TO SEND ERROR ; LOOK FOR INDEX AND SECTOR FMT. 4 01CB [ K OR #80 ] -- K OR IM 80 -> K (HEAD ZEROED) 4 01CC [ K AND #80 ] -- K AND IM MASK OUT 1 01CD [ BF S1 & #01 GO 1CD ] -- B1FL BR. INDEX OFF 1 01CE [ BT S1 & #01 GO 1CE ] -- B1TL BR. INDEX ON 1 01CF [ BF S1 & #10 GO 1CF ] -- B1FH BR. SECTOR MARK OFF 01D0 [ GO #031 ] -- UB (IC = 00XX) ; 4 01D1 [ IF A==0 GO #13C ] -- BR A = 0 01D2 [ GO #134 ] -- UB (IC = 01XX) 4 01D3 [ K AND #00 ] -- K AND IM CLEAR K REG. 1 01D4 [ K ADD #01 ] -- K ADD IM K+1 01D5 [ IF KH<>#9 GO 1D4 ] -- BR K <> MH 01D6 [ LA #1F9 ] -- LA (ADDR = 01XX) 01D7 [ GO #181 ] -- UB (IC = 01XX) ; INITIALIZE REPLY 4 01D8 [ K AND #00 ] -- K AND IM CLEAR K REG. 01D9 [ K OR #C0 ] -- K OR IM C0 -> K 01DA [ K TO M(N) ] -- K TO M(N) CO -> MEM. 1 01DB [ BF S0 & #80 GO 1DB ] -- B0FH WAIT KBD 01DC [ CTL2 #013 ] -- CNTRL-2 STROBE TO 2200 01DD [ GO #1F9 ] -- UB (IC = 01XX) ; CLEAR DRIVE IF NO STROBE WITHIN 10 SEC. 4 01DE [ CTL2 #000 ] -- CNTRL-2 01DF [ LA #10F ] -- LA (ADDR = 01XX) 01E0 [ BF S0 & #20 GO 1EF ] -- B0FH BR. STROBE ON 01E1 [ K OR #F8 ] -- K OR IM 2 01E2 [ BF S0 & #20 GO 1EF ] -- B0FH BR. STROBE ON 01E3 [ CTL2 #023 ] -- CNTRL-2 START 40 MSEC. 1 01E4 [ BF S0 & #20 GO 1EF ] -- B0FH BR. STROBE ON 01E5 [ BT S0 & #04 GO 1E4 ] -- B0TL BR. 40 MSEC. ON 01E6 [ A ADD #01 ] -- A ADD IM A+l 01E7 [ BF S0 & #20 GO 1EF ] -- B0FH BR. STROBE ON 01E8 [ IF A<>0 GO #1E2 ] -- BR A <> 0 BR. 10 SEC. 01E9 [ K ADD #01 ] -- K ADD IM K+l 01EA [ BF S0 & #20 GO 1EF ] -- B0FH BR. STROBE ON 01EB [ IF K<>0 GO #1E2 ] -- BR K <> 0 01EC [ CTL1 #188 ] -- CNTRL-1 STOP MOTOR 4 01ED [ LA #10F ] -- LA (ADDR = 01XX) 5 01EE [ BT S0 & #20 GO 1EE ] -- B0TH BR. NO STROBE 1 01EF [ GO #0D5 ] -- UB (IC = 00XX) ; CONVERSION CONTINUED 01F0 [ CTL2 #3FF ] -- 01F1 [ CTL2 #3FF ] -- 01F2 [ CTL2 #3FF ] -- 4 01F3 [ LA #111 ] -- LA (ADDR = 01XX) 01F4 [ A TO M(+1) ] -- A TO M(+l) 01F5 [ K TO M(N) ] -- K TO M(N) 01F6 [ BF S1 & #40 GO 1F8 ] -- B1FH BR. CARRY OFF 01F7 [ GO #0F7 ] -- UB (IC = 00XX) 1 01F8 [ GO #0FC ] -- UB (IC - 00XX) ; CLEAR DISK IF DRIVE IS NOT ACCESSED WITHIN 8 SEC. ; OF LAST OPERATION OF THAT DRIVE 4 01F9 [ NOOP ] -- NOOP(N) 01FA [ NOOP ] -- NOOP(N) 01FB [ NOOP ] -- NOOP(N) 01FC [ GO #1ED ] -- UB (IC = 01XX) 01FD [ CTL2 #3FF ] -- 01FE [ CTL2 #3FF ] -- 01FF [ CTL2 #3FF ] -- 4 0200 [ LA #140 ] -- LA (ADDR = 01XX) 0201 [ M(N) TO K ] -- M TO K(N) 0202 [ K AND #00 ] -- K AND IM 0203 [ K TO M(+1) ] -- K TO M(+1) 4 0204 [ M(N) TO K ] -- M TO K(N) 0205 [ K ADD #01 ] -- K ADD IM K+1 0206 [ K TO M(N) ] -- K TO M(N) 0207 [ BT K & #20 GO 209 ] -- BKTH BR. = 8 SEC. 0208 [ GO #10C ] -- UB (IC = 01XX) 1 0209 [ K AND #00 ] -- K AND IM CLEAR K REG. 020A [ K TO M(N) ] -- K TO M(N) 020B [ BT A & #10 GO 20E ] -- BATH BR. DISK #2 020C [ CTL1 #080 ] -- CNTRL-1 CLEAR DISK #2 020D [ GO #10C ] -- UB (IC = 01XX) 1 020E [ CTL1 #100 ] -- CNTRL-1 CLEAR DISK #1 020F [ GO #10C ] -- UB (IC = 01XX) 4 0210 [ LA #141 ] -- LA (ADDR = 01XX) 0211 [ M(N) TO K ] -- M TO K(N) 0212 [ K AND #00 ] -- K AND IM 0213 [ K TO M(-1) ] -- K TO M(-1) 0214 [ GO #204 ] -- U8 (IC = 10XX) ; COUNT # OF ERRORS 0215 [ CTL2 #3FF ] -- 0216 [ CTL2 #3FF ] -- 0217 [ CTL2 #3FF ] -- 0218 [ CTL2 #3FF ] -- 0219 [ CTL2 #3FF ] -- 021A [ CTL2 #3FF ] -- 021B [ CTL2 #3FF ] -- 021C [ CTL2 #3FF ] -- 021D [ CTL2 #3FF ] -- 021E [ CTL2 #3FF ] -- 021F [ CTL2 #3FF ] -- 4 0220 [ CTL1 #004 ] -- CNTRL-1 0221 [ LA #130 ] -- LA (ADDR = 01XX) SECTOR ERROR LOC. 0222 [ M(N) TO A ] -- M TO A(N) 0223 [ A AND #00 ] -- A AND IM CLEAR ERROR 0224 [ A TO M(N) ] -- A TO M(N) 0225 [ LA #138 ] -- LA (ADDR = 01XX) CRC ERROR LOC. 0226 [ M(N) TO A ] -- M TO A(N) 0227 [ A ADD #01 ] -- A ADD IM A+1 0228 [ A TO M(N) ] -- A TO M(N) 0229 [ IF AH==#1 GO 22B ] -- BR A = M(N) BR. = 16 ERRORS 022A [ GO #028 ] -- UB (IC = 00XX) BR. TO RETRY 1 022B [ GO #07E ] -- UB (IC = 00XX) BR. TO CRC ERROR 022C [ CTL2 #3FF ] -- 022D [ CTL2 #3FF ] -- 022E [ CTL2 #3FF ] -- 022F [ CTL2 #3FF ] -- ; 400 MSEC. DELAY 4 0230 [ K AND #00 ] -- K AND IM CLEAR K REG. 1 0231 [ CTL2 #023 ] -- CNTRL-2 START 40 MSEC. 1 0232 [ ST1 AND #00 ] -- ST1 AND IM CLEAR CARRY 0233 [ BT S0 & #04 GO 232 ] -- B0TL BR. 40 MSEC. ON 0234 [ K ADD #01 ] -- K ADD IM K+1 0235 [ IF KL<>#A GO 231 ] -- BR K <> ML 0236 [ GO #010 ] -- UB (IC = 00XX) ; 0237 [ CTL2 #3FF ] -- 0238 [ CTL2 #3FF ] -- 0239 [ CTL2 #3FF ] -- 023A [ CTL2 #3FF ] -- 023B [ CTL2 #3FF ] -- 023C [ CTL2 #3FF ] -- 023D [ CTL2 #3FF ] -- 023E [ CTL2 #3FF ] -- 023F [ CTL2 #3FF ] -- ; CONVERSION CONTINUED 4 0240 [ IF AL==#9 GO 24A ] -- BR A = ML 0241 [ IF AL==#8 GO 24C ] -- BR A = ML 0242 [ IF AL==#4 GO 246 ] -- BR A = ML 0243 [ BF A & #04 GO 24E ] -- BAFL 0244 [ IF AL==#5 GO 248 ] -- BR A = ML 0245 [ IF AL==#6 GO 24A ] -- BR A = ML 1 0246 [ A XOR #06 ] -- A XOR IM 4 0247 [ A TO M(N) ] -- A TO M(N) 5 0248 [ LA #110 ] -- LA (ADDR = 01XX) 0249 [ GO #100 ] -- UB (IC = 01XX) 1 024A [ A XOR #0E ] -- A XOR IM 024B [ GO #247 ] -- UB (IC = 1OXX) 1 024C [ A XOR #0C ] -- A XOR IM 024D [ GO #247 ] -- UB (IC = 10XX) 1 024E [ A ADD M(N) ] -- A ADD M(N) 024F [ A ADD M(N) ] -- A ADD M(N) 0250 [ GO #248 ] -- UB (IC = 10XX) 0251 [ CTL2 #3FF ] -- 0252 [ CTL2 #3FF ] -- 0253 [ CTL2 #3FF ] -- 0254 [ CTL2 #3FF ] -- 0255 [ CTL2 #3FF ] -- 0256 [ CTL2 #3FF ] -- 0257 [ CTL2 #3FF ] -- 0258 [ CTL2 #3FF ] -- 0259 [ CTL2 #3FF ] -- 025A [ CTL2 #3FF ] -- 025B [ CTL2 #3FF ] -- 025C [ CTL2 #3FF ] -- 025D [ CTL2 #3FF ] -- 025E [ CTL2 #3FF ] -- 025F [ CTL2 #3FF ] -- 0260 [ CTL2 #3FF ] -- 0261 [ CTL2 #3FF ] -- 0262 [ CTL2 #3FF ] -- 0263 [ CTL2 #3FF ] -- 0264 [ CTL2 #3FF ] -- 0265 [ CTL2 #3FF ] -- 0266 [ CTL2 #3FF ] -- 0267 [ CTL2 #3FF ] -- 0268 [ CTL2 #3FF ] -- 0269 [ CTL2 #3FF ] -- 026A [ CTL2 #3FF ] -- 026B [ CTL2 #3FF ] -- 026C [ CTL2 #3FF ] -- 026D [ CTL2 #3FF ] -- 026E [ CTL2 #3FF ] -- 026F [ CTL2 #3FF ] --