/SERIAL-BASED DISK SYSTEM Page 1 1 /SERIAL-BASED DISK SYSTEM 2 /SYSTEM HANDLER FOR OMNIBUS 3 /KYLE OWEN - 8/28/2015 4 5 /ADDED INTERRUPT DISABLE FOR FRTS 6 7 0005 VERS="E&77 8 9 6400 BASER=6400 10 6410 BASET=6410 11 12 6400 SKCF=BASER 13 6401 SKSF=BASER+1 14 6402 SKCC=BASER+2 15 6404 SKRS=BASER+4 16 6405 SKIE=BASER+5 17 6406 SKRB=BASER+6 18 19 6410 STFL=BASET 20 6411 STSF=BASET+1 21 6412 STCF=BASET+2 22 6414 STPC=BASET+4 23 6415 STSK=BASET+5 24 6416 STLS=BASET+6 25 26 6260 BLKNUM=6260 27 28 /HANDLER SENDS: 29 /A OR B - COMMAND SERVER, SIDE 0 OR 1 30 /@ - SEND BOOT CODE 31 32 0000 *0 33 00000 7775 -3 /THREE DEVICES 34 00001 2304 DEVICE SDSK; DEVICE SYS; 4640; ENTRY1&177+2000; 0; BLKNUM 00002 2313 00003 2331 00004 2300 00005 4640 00006 2007 00007 0000 00010 6260 35 00011 2304 DEVICE SDSK; DEVICE SDA0; 4640; ENTRY1&177+1000; 0; BLKNUM 00012 2313 00013 2304 00014 0160 00015 4640 00016 1007 00017 0000 00020 6260 36 00021 2304 DEVICE SDSK; DEVICE SDB0; 4640; ENTRY2&177+1000; 0; BLKNUM /SERIAL-BASED DISK SYSTEM Page 2 00022 2313 00023 2304 00024 0260 00025 4640 00026 1060 00027 0000 00030 6260 37 00031 7732 BOOT-ENDB 38 39 RELOC 0 40 41 00000* 7200 BOOT, CLA 42 00001* 1413 TAD I BOOTX1 /COPY FROM 00200-00400 TO 07600-00000 43 00002* 3414 DCA I BOOTX2 44 00003* 1415 TAD I BOOTX3 /COPY FROM 00047-00247 TO 17647-10047 45 00004* 6211 CDF 10 46 00005* 3416 DCA I BOOTX4 47 00006* 6201 CDF 0 48 00007* 1014 TAD BOOTX2 49 00010* 7640 SZA CLA /DONE? 50 00011* 5001 JMP BOOT+1 /NO, KEEP COPYING 51 00012* 5444 JMP I B7605 /JUMP TO OS/8 52 00013* 0177 BOOTX1, 177 53 00014* 7577 BOOTX2, 7577 54 00015* 0046 BOOTX3, 46 55 00016* 7646 BOOTX4, 7646 56 00017* 0017 ADDR, 17 57 ZBLOCK 20-. 58 00020* 7240 CLA CMA /AC=7777 59 00021* 3017 DCA ADDR /SET UP ADDRESS 60 00022* 1045 TAD BOOTMS /SEND BOOT MESSAGE TO SERVER 61 00023* 6416 STLS 62 00024* 6411 STSF 63 00025* 5024 JMP .-1 64 00026* 6402 RDLP, SKCC /CLEAR AC AND FLAG 65 00027* 6401 SKSF /SKIP IF FLAG SET 66 00030* 5027 JMP .-1 67 00031* 6406 SKRB /READ BUFFER 68 00032* 7106 CLL RTL /ROTATE 6 LEFT 69 00033* 7006 RTL 70 00034* 7510 SPA /CHANNEL 8 PUNCHED? 71 00035* 5000 JMP BOOT /YES, CONTINUE BOOTING 72 00036* 7006 RTL 73 00037* 6401 SKSF /SKIP IF FLAG SET 74 00040* 5037 JMP .-1 75 00041* 6404 SKRS /OR BUFFER WITH AC 76 00042* 3417 DCA I ADDR /STORE CONTENTS 77 00043* 5026 JMP RDLP /KEEP LOOPING 78 00044* 7605 B7605, 7605 /ADDRESS OF OS/8 ENTRY 79 00045* 0100 BOOTMS, 100 /"@" COMMAND TO SERVER /SERIAL-BASED DISK SYSTEM Page 3 80 ENDB, RELOC 81 82 0200 *200 83 RELOC 7600 84 07600* 0000 ZBLOCK 7 07601* 0000 07602* 0000 07603* 0000 07604* 0000 07605* 0000 07606* 0000 85 07607* 0005 ENTRY1, VERS 86 07610* 7300 CLA CLL /CLEAR LINK FOR FIRST PLATTER 87 07611* 1336 SETUP, TAD WKUP /ADD WAKEUP CHARACTER 88 07612* 4266 JMS SENDC /SEND WAKEUP CHARACTER 89 07613* 7200 CLA 90 07614* 6405 SKIE /CLEAR INTERRUPT 91 07615* 6214 RDF /GET CURRENT FIELD 92 07616* 1333 TAD SCDI /ADD CDI 93 07617* 3327 DCA SFIELD /DEPOSIT MODIFIED CIF 94 07620* 1607 TAD I ENTRY1 /GET FUNCTION 95 07621* 4273 JMS SNDNUM /TELL SERVER FUNCTION 96 07622* 2207 ISZ ENTRY1 /LOOK AT BUFFER ADDRESS 97 07623* 1607 TAD I ENTRY1 /GET BUFFER ADDRESS 98 07624* 4273 JMS SNDNUM /TELL SERVER BUFFER ADDRESS 99 07625* 1607 TAD I ENTRY1 /GET BUFFER ADDRESS 100 07626* 3334 DCA SLOC /STORE BUFFER ADDRESS 101 07627* 2207 ISZ ENTRY1 /LOOK AT STARTING BLOCK NUMBER 102 07630* 1607 TAD I ENTRY1 /GET STARTING BLOCK NUMBER 103 07631* 4273 JMS SNDNUM /TELL SERVER STARTING BLOCK NUMBER 104 07632* 2207 ISZ ENTRY1 /LOOK AT ERROR RETURN 105 07633* 4301 JMS GETNUM /RECEIVE CDF INSTRUCTION 106 07634* 3250 DCA CDFSTO 107 07635* 4301 JMS GETNUM /RECEIVE NEGATIVE WORD COUNT 108 07636* 3335 DCA WORDCT 109 07637* 4301 GETACK, JMS GETNUM /4000=READ, 4001=WRITE, 0000=DONE, 2000=ERROR 110 07640* 7450 SNA /WAS IT ZERO? 111 07641* 5326 JMP EXIT /YES, EXIT 112 07642* 7104 CLL RAL /NO, IS HIGH BIT SET? 113 07643* 7420 SNL 114 07644* 5331 JMP ERROR /NO, ERROR! 115 07645* 7640 SZA CLA /YES, READ OR WRITE? 116 07646* 5313 JMP TXPG /TIME TO WRITE 117 118 07647* 4301 RXLP, JMS GETNUM /GET WORD 119 07650* 7402 CDFSTO, HLT /MODIFIED TO CDF 120 07651* 3734 DCA I SLOC /STORE CONTENTS 121 07652* 6201 CDF 0 122 07653* 2334 ISZ SLOC /NEXT LOCATION 123 07654* 7000 NOP /SERIAL-BASED DISK SYSTEM Page 4 124 07655* 2335 ISZ WORDCT /INCREMENT WORD COUNT...DONE? 125 07656* 5247 JMP RXLP /NO, KEEP LOOPING 126 07657* 5237 JMP GETACK /ANY OTHER REQUESTS? 127 128 07660* 0005 ENTRY2, VERS /SECOND ENTRY POINT 129 07661* 7200 CLA 130 07662* 1260 TAD ENTRY2 /GET ARGUMENT ADDRESS 131 07663* 3207 DCA ENTRY1 /STORE IT IN COMMON PLACE 132 07664* 7301 CLA CLL IAC /SET AC = 1 FOR 2ND PLATTER 133 07665* 5211 JMP SETUP /CONTINUE WITH SETUP 134 135 07666* 0000 SENDC, 0 /SEND CHARACTER IN AC 136 07667* 6416 STLS 137 07670* 6411 STSF 138 07671* 5270 JMP .-1 139 07672* 5666 JMP I SENDC 140 141 07673* 0000 SNDNUM, 0 /SEND NUMBER AS TWO CONSECUTIVE CHARACTERS 142 07674* 4266 JMS SENDC /SEND BOTTOM 8 BITS OF WORD 143 07675* 7002 BSW /SEND TOP 6 BITS OF WORD PLUS SOME, LET SERVER HANDLE IT 144 07676* 4266 JMS SENDC 145 07677* 7200 CLA 146 07700* 5673 JMP I SNDNUM 147 148 07701* 0000 GETNUM, 0 149 07702* 6402 SKCC /CLEAR AC AND FLAG 150 07703* 6401 SKSF /SKIP IF FLAG SET 151 07704* 5303 JMP .-1 152 07705* 6406 SKRB /READ BUFFER 153 07706* 7002 BSW /SWAP BYTES 154 07707* 6401 SKSF /SKIP IF FLAG SET 155 07710* 5307 JMP .-1 156 07711* 6404 SKRS /OR BUFFER WITH AC 157 07712* 5701 JMP I GETNUM 158 159 07713* 1250 TXPG, TAD CDFSTO /GET DATA FIELD 160 07714* 3315 DCA TXCDF /MODIFY CDF FOR TRANSFER 161 07715* 7402 TXCDF, HLT /MODIFIED TO CDF 162 07716* 1734 TAD I SLOC /GET WORD 163 07717* 6201 CDF 0 /BACK TO FIELD 0 164 07720* 2334 ISZ SLOC /NEXT LOCATION 165 07721* 7000 NOP 166 07722* 4273 JMS SNDNUM /SEND IT 167 07723* 2335 ISZ WORDCT /INCREMENT WORD COUNT...DONE? 168 07724* 5315 JMP TXCDF /NO, KEEP LOOPING 169 07725* 5237 JMP GETACK /ANY MORE REQUESTS? 170 171 07726* 2207 EXIT, ISZ ENTRY1 /NORMAL EXIT 172 07727* 7402 SFIELD, HLT /MODIFIED TO CDI 173 07730* 5607 JMP I ENTRY1 /EXIT /SERIAL-BASED DISK SYSTEM Page 5 174 07731* 7130 ERROR, CLL CML RAR /ROTATE ERROR CODE AND SET NEGATIVE BIT 175 07732* 5327 JMP SFIELD /ERROR EXIT 176 177 07733* 6203 SCDI, CIF CDF 0 178 07734* 0000 SLOC, 0 179 07735* 0000 WORDCT, 0 180 07736* 0101 WKUP, 101 181 07737* 0000 ZBLOCK 7744-. 07740* 0000 07741* 0000 07742* 0000 07743* 0000 182 RELOC 183 $ No detected errors No links generated