/SERIAL-BASED DISK SYSTEM - SYS PAL8-V10D 30-DEC-81 PAGE 1 /SERIAL-BASED DISK SYSTEM - SYS /SYSTEM HANDLER FOR OS/8 FOR OMNIBUS AND PRE-OMNIBUS /KYLE OWEN 17/FEB/2014 - ORIGINAL TO VERSION D /BOB ADAMSON 16/NOV/2015 - REMOVED REDUNDANT CDFS / - REPLACED BSWS WITH ROTATES / - DISABLED INTERRUPTS FROM HERE 0005 VERS="E&77 6400 BASER=6400 /USING DEVICE CODES 40,41 6410 BASET=6410 6400 SKCF=BASER 6401 SKSF=BASER+1 6402 SKCC=BASER+2 6404 SKRS=BASER+4 6405 SKIE=BASER+5 6406 SKRB=BASER+6 6410 STFL=BASET 6411 STSF=BASET+1 6412 STCF=BASET+2 6414 STPC=BASET+4 6415 STSK=BASET+5 6416 STLS=BASET+6 6260 BLKNUM=6260 /HANDLER SENDS: /A OR B - COMMAND SERVER, SIDE 0 OR 1 /@ - SEND BOOT CODE 0000 *0 00000 7775 -3 /THREE DEVICES (SYSTEM PLUS 2 LOGICAL DISKS) 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 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 00021 2304 DEVICE SDSK; DEVICE SDB0; 4640; ENTRY2&177+1000; 0; BLKNUM 00022 2313 00023 2304 00024 0260 /SERIAL-BASED DISK SYSTEM - SYS PAL8-V10D 30-DEC-81 PAGE 1-1 00025 4640 00026 1062 00027 0000 00030 6260 00031 7732 BOOT-ENDB 0000 RELOC 0 00000* 7200 BOOT, CLA 00001* 1413 TAD I BOOTX1 /COPY FROM 00200-00400 TO 07600-00000 00002* 3414 DCA I BOOTX2 00003* 1415 TAD I BOOTX3 /COPY FROM 00047-00247 TO 17647-10047 00004* 6211 CDF 10 00005* 3416 DCA I BOOTX4 00006* 6201 CDF 0 00007* 1014 TAD BOOTX2 00010* 7640 SZA CLA /DONE? 00011* 5001 JMP BOOT+1 /NO, KEEP COPYING 00012* 5444 JMP I B7605 /JUMP TO OS/8 00013* 0177 BOOTX1, 177 00014* 7577 BOOTX2, 7577 00015* 0046 BOOTX3, 46 00016* 7646 BOOTX4, 7646 00017* 0017 ADDR, 17 ZBLOCK 20-. 00020* 7240 CLA CMA /AC=7777 00021* 3017 DCA ADDR /SET UP ADDRESS 00022* 1045 TAD BOOTMS /SEND BOOT MESSAGE TO SERVER 00023* 6416 STLS 00024* 6411 STSF 00025* 5024 JMP .-1 00026* 6402 RDLP, SKCC /CLEAR AC AND FLAG 00027* 6401 SKSF /SKIP IF FLAG SET 00030* 5027 JMP .-1 00031* 6406 SKRB /READ BUFFER 00032* 7106 CLL RTL /ROTATE 6 LEFT 00033* 7006 RTL 00034* 7510 SPA /CHANNEL 8 PUNCHED? 00035* 5000 JMP BOOT /YES, CONTINUE BOOTING 00036* 7006 RTL 00037* 6401 SKSF /SKIP IF FLAG SET 00040* 5037 JMP .-1 00041* 6404 SKRS /OR BUFFER WITH AC 00042* 3417 DCA I ADDR /STORE CONTENTS 00043* 5026 JMP RDLP /KEEP LOOPING 00044* 7605 B7605, 7605 /ADDRESS OF OS/8 ENTRY 00045* 0100 BOOTMS, 100 /"@" COMMAND TO SERVER 0100 ENDB, RELOC 0200 *200 7600 RELOC 7600 07600* 0000 ZBLOCK 7 07607* 0005 ENTRY1, VERS 07610* 7300 CLA CLL /CLEAR AC FOR FIRST PLATTER 07611* 1334 SETUP, TAD WKUP /ADD WAKEUP CHARACTER /SERIAL-BASED DISK SYSTEM - SYS PAL8-V10D 30-DEC-81 PAGE 1-2 07612* 3262 DCA SLOC /SAVE UNTIL WE'VE KILLED INTERRUPTS 07613* 6405 SKIE /NO INTERRUPTS FROM HERE 07614* 1262 TAD SLOC /GET THE WAKEUP CODE BACK AGAIN 07615* 4270 JMS SENDC /SEND WAKEUP CHARACTER 07616* 7200 CLA 07617* 6214 RDF /GET CURRENT FIELD 07620* 1335 TAD SCDI /ADD CDI 07621* 3327 DCA SFIELD /DEPOSIT MODIFIED CIF 07622* 4321 JMS GETNEX /TELL SERVER REQUIRED FUNCTION 07623* 1607 TAD I ENTRY1 /GET BUFFER ADDRESS 07624* 3262 DCA SLOC /STORE BUFFER ADDRESS 07625* 4321 JMS GETNEX /TELL SERVER BUFFER ADDRESS 07626* 4321 JMS GETNEX /TELL SERVER STARTING BLOCK NUMBER 07627* 4305 JMS GETNUM /RECEIVE CDF INSTRUCTION 07630* 3231 DCA .+1 /SAVE AND THEN EXECUTE THE CDF 07631* 7402 HLT /BECOMES CDF TO XFER FIELD 07632* 4305 JMS GETNUM /RECEIVE NEGATIVE WORD COUNT 07633* 3333 DCA WORDCT 07634* 4305 GETACK, JMS GETNUM /4000=READ, 4001=WRITE, 0000=DONE, 2000=ERROR 07635* 7450 SNA /WAS IT ZERO? 07636* 5326 JMP EXIT /YES, EXIT 07637* 7104 CLL RAL /NO, IS HIGH BIT SET? 07640* 7420 SNL 07641* 5331 JMP ERROR /NO, ERROR! 07642* 7640 SZA CLA /YES, READ OR WRITE? 07643* 5253 JMP TXLP /TIME TO WRITE 07644* 4305 RXLP, JMS GETNUM /GET WORD 07645* 3662 DCA I SLOC /STORE CONTENTS 07646* 2262 ISZ SLOC /NEXT LOCATION 07647* 7000 NOP /GUARD FOR ISZ 07650* 2333 ISZ WORDCT /INCREMENT WORD COUNT...DONE? 07651* 5244 JMP RXLP /NO, KEEP LOOPING 07652* 5234 JMP GETACK /ANY OTHER REQUESTS? 07653* 1662 TXLP, TAD I SLOC /GET WORD 07654* 2262 ISZ SLOC /NEXT LOCATION 07655* 7000 NOP 07656* 4275 JMS SNDNUM /SEND IT 07657* 2333 ISZ WORDCT /INCREMENT WORD COUNT...DONE? 07660* 5253 JMP TXLP /NO, KEEP LOOPING 07661* 5234 JMP GETACK /ANY MORE REQUESTS? SLOC, /REUSE THIS LOCATION 07662* 0005 ENTRY2, VERS /SECOND ENTRY POINT 07663* 7200 CLA 07664* 1262 TAD ENTRY2 /GET ARGUMENT ADDRESS 07665* 3207 DCA ENTRY1 /STORE IT IN COMMON PLACE 07666* 7301 CLA CLL IAC /SET AC = 1 FOR 2ND PLATTER 07667* 5211 JMP SETUP /CONTINUE WITH SETUP 07670* 0000 SENDC, 0 /SEND CHARACTER IN AC 07671* 6416 STLS 07672* 6411 STSF 07673* 5272 JMP .-1 /SERIAL-BASED DISK SYSTEM - SYS PAL8-V10D 30-DEC-81 PAGE 1-3 07674* 5670 JMP I SENDC 07675* 0000 SNDNUM, 0 /SEND NUMBER AS TWO CONSECUTIVE CHARACTERS 07676* 4270 JMS SENDC /SEND BOTTOM 8 BITS OF WORD 07677* 7012 RTR /NO BSW HERE TO SUIT 8/I ETC 07700* 7012 RTR /SHIFT TOP BITS DOWN 6 07701* 7012 RTR 07702* 4270 JMS SENDC /SEND TOP 4 BITS PLUS SOME - LET SERVER HANDLE IT 07703* 7200 CLA 07704* 5675 JMP I SNDNUM 07705* 0000 GETNUM, 0 07706* 6402 SKCC /CLEAR AC AND FLAG 07707* 6401 SKSF /SKIP IF FLAG SET 07710* 5307 JMP .-1 07711* 6406 SKRB /READ BUFFER WHICH IS FIRST SIXBIT 07712* 7106 CLL RTL /SHIFT SIXBIT TO BITS 0-5 07713* 7006 RTL /NO BSW TO SUIT 8/I ETC 07714* 7006 RTL 07715* 6401 SKSF /SKIP IF FLAG SET 07716* 5315 JMP .-1 /WHICH WILL BE THE 2ND SIXBIT 07717* 6404 SKRS /OR WITH AC TO GIVE 12 BIT WORD 07720* 5705 JMP I GETNUM 07721* 0000 GETNEX, 0 /PARAMETER HANDLER UTILITY 07722* 1607 TAD I ENTRY1 /FETCH NEXT CALLING PARAMETER 07723* 4275 JMS SNDNUM /AND SEND IT TO THE SERVER 07724* 2207 ISZ ENTRY1 /MOVE POINTER TO NEXT PARAMETER 07725* 5721 JMP I GETNEX 07726* 2207 EXIT, ISZ ENTRY1 /NORMAL EXIT 07727* 7402 SFIELD, HLT /MODIFIED TO CDI 07730* 5607 JMP I ENTRY1 /EXIT 07731* 7130 ERROR, CLL CML RAR /ROTATE ERROR CODE AND SET NEGATIVE BIT 07732* 5327 JMP SFIELD /ERROR EXIT 07733* 0000 WORDCT, 0 07734* 0101 WKUP, 101 07735* 6203 SCDI, CIF CDF 0 07736* 0000 ZBLOCK 7744-. 0344 RELOC $ /SERIAL-BASED DISK SYSTEM - SYS PAL8-V10D 30-DEC-81 PAGE 2 ADDR 0017 BASER 6400 BASET 6410 BLKNUM 6260 BOOT 0000 BOOTMS 0045 BOOTX1 0013 BOOTX2 0014 BOOTX3 0015 BOOTX4 0016 B7605 0044 ENDB 0046 ENTRY1 7607 ENTRY2 7662 ERROR 7731 EXIT 7726 GETACK 7634 GETNEX 7721 GETNUM 7705 RDLP 0026 RXLP 7644 SCDI 7735 SENDC 7670 SETUP 7611 SFIELD 7727 SKCC 6402 SKCF 6400 SKIE 6405 SKRB 6406 SKRS 6404 SKSF 6401 SLOC 7662 SNDNUM 7675 STCF 6412 STFL 6410 STLS 6416 STPC 6414 STSF 6411 STSK 6415 TXLP 7653 VERS 0005 WKUP 7734 WORDCT 7733 ERRORS DETECTED: 0 LINKS GENERATED: 0