File: SI43SY.PA of Tape: OS8/OS8-Latest/new-13
(Source file text)
/SYS. IND. M43 SYS HNDLR / / / / /COPYRIGHT (C) 1980 BY WVDMARK, ZURICH / / / / / /WVDM, ZUERICH, 1-SEP-80 /SI MOD43 SYS HNDLR OS/8 V3 /ORIGIN:/SYSTEM INDUSTRIES, INC. /535 DEL REY AVENUE /SUNNYVALE, CALIFORNIA 94086 /THIS SYSTEM HANDLER IS CONFIGURED /FOR OS/8 VERSION 3, ALLOWING IT TO BE USED WITH /SYSTEM INDUSTRIES MODEL 3400/3500 STORAGE SYSTEMS. VERSION="N&77 /DEFINITIONS: DOFF0=146 /QUARTER SIZE MOVING-HEAD DISK DCODE=50 /DEVICE CODE OF CONTROLLER BSW=7002 DSDD=10^DCODE+6001 DLCR=10^DCODE+6002 DCSR=10^DCODE+6004 DRSR=10^DCODE+6005 DSDE=10^DCODE+6011 DLSR=10^DCODE+6012 DSRR=10^DCODE+6013 DLTR=10^DCODE+6014 DWCA=10^DCODE+6017 *0 /DESCRIPTOR TABLE -3 /TWO HANDLERS + SYS DEVICE SISY;DEVICE SYS;4400;2007;0;6260 DEVICE SISY;DEVICE RKA0;4400;1007;0;6260 DEVICE SISY;DEVICE RKB0;4400;DSKDRV&177+1000;0;6260 BOOTA-BOOTB /# OF WORDS IN BOOT /BOOTSTRAP PROCEDURE: /TOGGLE IN FOLLOWING INSTRUCTIONS NOPUNC *0000 /SET ADDRESS AND EXT. ADD. TO 00000 BOOTA, DLCR /ASSURE DATA FIELD 0 (ALSO WORD COUNT) 0000 /START CORE ADDRESS DWCA /SET WC, CA FROM 0 AND 1 DLSR /SECTOR 0 CLA STL RTR /UNIT BIT 2000 AND BOUNIT /GET USER SPEC. UNIT AND NOTHING ELSE DLTR /READ FROM TRACK ZERO, UNIT 0 OR 1 JMP . /WAIT FOR DSDD;JMP .-1 OVERLAY BOUNIT, 0000 /OR 2000 FOR RKA1 BOOT /START THE BOOT AT ADDRESS ZERO /NOTE: / THE -AC- MUST BE ZERO. /OLD BOOTSTRAP MAY ALSO BE USED FOR UNIT 0 (FIXED) *0000 /SET ADDRESS AND EXT.ADD. TO 00000 DLCR /ASSURE DATA FIELD 0 (ALSO WORD COUNT) 0000 /START CORE ADDRESS DWCA /SET WC, CA FROM 0 AND 1 DLSR /SECTOR 0 DLTR /READ FROM TRACK ZERO, UNIT 0 JMP . /WAIT FOR DSDD;JMP .-1 OVERLAY ENPUNC /SECONDARY BOOTSTRAP RELOC BOOTA BOSTO, 7600 /POINTER TO LOAD SYS PAGES BOSTRT, 7605 /MONITOR LOAD ADDRESS BTDATE, -7666+1 /DATE AND SIUNIT SKIP LOC DBUNIT, SIUNIT /SIUNIT LOCATION DSDD JMP .-1 /IN CASE OLD BOOTSTRAP IS USED DSDD /LOAD DSDD OVER DLTR JMP .-1 /NOW REPLACE JMP . AND START SEC. BOOT DSDE /ANY ERRORS ? JMP BOOT /NO DRSR /CLEAR AC AND LOAD STATUS REGISTER HLT /QUIT AND DISPLAY ERROR JMP . /CATCH SMART GUYS BOXR5, BOOTA+200-1 /PAGE FOR FIELD 0 BOXR6, BOOTA+000-1 /PAGE FOR FIELD 1 BOOT, /AC CONTAINS UNIT FROM PRIMARY BOOT DCA I DBUNIT /STORE IN SPECIAL LOC BOLOOP, TAD I BOXR5 /LOAD FIELD 0 DCA I BOSTO /NOT INCED YET TAD I BOXR6 /LOAD FIELD 1 CDF 10 DCA I BOSTO CDF 0 /MAIN FIELD 0 TAD BOSTO TAD BTDATE /ARE WE AT DATE AND SIUNIT LOC ? SZA CLA JMP BOCONT /NO, GO ON ISZ BOXR5 ISZ BOXR6 ISZ BOSTO /BUMP ALL 3 POINTERS OVER IT BOCONT, ISZ BOSTO /INC DEPOSIT POINTER JMP BOLOOP /IF NO SKIP, GO ON JMP I BOSTRT /THAT'S IT! BOOTB, RELOC /END OF SECONDARY BOOTSTRAP PAGE *200 RELOC 7600 ZBLOCK 7 /INITIALIZATION CODE SHNDLR, VERSION /ENTRY/EXIT POINT CLL CLA /NEVER TRUST THE USER TO PASS A CLEAR AC SIMERG, TAD SIUNIT /SET UNIT DCA SYSDSK /AND TRACK OFFSET TAD I SHNDLR DCA WRD1 /GET FUNCTION CONTROL WORD TO LOCAL STORAGE ISZ SHNDLR TAD I SHNDLR DCA CORADR /GET DATA BUFFER ADDRESS ISZ SHNDLR TAD I SHNDLR DCA DADR /GET DISK BLOCK-ADDRESS ISZ SHNDLR /PARTIALLY FIX EXIT RDF TAD KCDIF DCA SHNXIT+1 /SET UP FIELD CHANGER FOR EXITING TAD WRD1 /CONVERT PAGE COUNT TO WORD COUNT AND M3700 /CLEAN OUT JUNK BITS CLL RAL DCA WDCNT TAD KM20 DCA ERRCNT /INITIALIZE RETRY COUNTER TAD DADR TAD LGLBLK /CHECK FOR LAST LEGAL BLK. SZL CLA JMP SHNXIT /FATAL:LINK ON /ALL INITIALIZATION CODE IS NOW DONE, PROCEED WITH REAL WORK SHNDLP, DLCR /INSURE INTERFACE DATA FIELD=0 DCSR /CLEAR STATUS REGISTER TAD WCCALC DWCA /TELL INTERFACE WHERE TO FIND CONTROL WORDS TAD KIONS DCA SHNIOU /SET UP ACTUAL I/O READ TAD WRD1 SPA ISZ SHNIOU /SET UP FOR WRITE BSW AND M7000 DLCR /LOAD DATA BUFFER FIELD TAD DADR AND M17 /FOR 256 WD/SECTOR DISKS DLSR /LOAD SECTOR ADDRESS REGISTER JMP DGO /GO TO DLTR START M17, 17 M377, 377 M3700, 3700 M7000, 7000 KM20, -20 IFNZRO 7666-. <UNTERR, _ /SPECIAL UNIT LOCATION > SIUNIT, 0 WDCNT, 0 CORADR, 0 /-DSK- DRIVER FOR SI DISK IFNZRO 7671-. <ENTERR, _ /RK ENTRY POINTS 70-77 > DSKDRV, VERSION /ENTRY-EXIT POINT CLL CLA TAD DSKDRV DCA SHNDLR /FOOL -SHNDLR- INTO THINKING IT WAS CALLED TAD KOFSET /SET -DSK- OFFSET ON UNIT 0 JMP SIMERG /GO ENTER NORMAL SHNDLR DADR, 0 ERRCNT, 0 IFNZRO 7701-. <USRERR, _ > HLT /CATCH USER LOOKING FOR-USR-IN WRONG FIELD WRD1, 0 SYSDSK, 0 LGLBLK, -6260 /101.5 CYLINDERS KCDIF, CIF CDF 0 KIONS, DLTR-WDCNT KOFSET, DOFF0^2 WCCALC, WDCNT DGO, CLL CLA TAD DADR RTR RTR AND M377 /DEVELOP TRACK ADDRESS TAD SYSDSK SHNIOU, HLT /A REAL TRACK LOAD AND GO IS PLACED HERE CLL CLA DSDD JMP .-1 /WAIT FOR OPERATION TO FINISH DSDE /WAS THERE AN ERROR? JMP SHNXIT-1 /NO, GO EXIT ISZ ERRCNT /BUMP ERROR COUNTER JMP SHNDLP /RETRY UNTIL COUNT EXPIRES CLL CML SKP ISZ SHNDLR /BUMP EXIT ADDRESS TO TAKE NORMAL EXIT SHNXIT, CLA RAR HLT /RESET FIELDS TO THOSE OF CALLER JMP I SHNDLR /EXIT RELOC $$$$$