File: SI43SY.PA of Tape: Sources/Other/si43
(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;6200 DEVICE SISY;DEVICE RKA0;4400;1007;0;6200 DEVICE SISY;DEVICE RKB0;4400;DSKDRV&177+1000;0;6200 BOOTA-BOOTB /# OF WORDS IN BOOT /BOOTSTRAP PROCEDURE: /TOGGLE IN FOLLOWING INSTRUCTIONS NOPUNC 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 JMP . /WAIT FOR RESULT ENPUNC /START THE BOOT AT ADDRESS ZERO /NOTE: / THE -AC- MUST BE ZERO. /SECONDARY BOOTSTRAP RELOC 0 BOOTA, NOP /PAD TO GET TO TOGGLE IN BOOT RESTRT, 7605 BOOTB, RELOC PAGE *200 RELOC 7600 ZBLOCK 7 /INITIALIZATION CODE SHNDLR, VERSION /ENTRY/EXIT POINT CLL CLA /NEVER TRUST THE USER TO PASS A CLEAR AC DCA SYSDSK /CLEAR 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 SNA JMP SHNXIT-1 /TAKE NORMAL EXIT ON ZERO WORD COUNT 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 CLL CLA TAD DADR RTR ; RTR AND M377 /DEVELOP TRACK ADDRESS TAD SYSDSK SHNIOU, HLT /A REAL TRACK LOAD AND GO IS PLACED HERE JMP DWAIT /-DSK- DRIVER FOR SI DISK IFNZRO 7671-. <NZERR> /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 SHNDLR+2 /GO ENTER NORMAL SHNDLR DADR, 0 ERRCNT, 0 IFNZRO 7701-. <NZERR> HLT /CATCH USER LOOKING FOR-USR-IN WRONG FIELD WRD1, 0 M7000, 7000 LGLBLK, -6200 /100 CYLS.+2 CYLS.PROTECTION KCDIF, CIF CDF 0 KIONS, DLTR-WDCNT KOFSET, DOFF0^2 M17, 17 M377, 377 M3700, 3700 SYSDSK, 0 WCCALC, .+1 WDCNT, 0 CORADR, 0 KM20, -20 DWAIT, 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 $$$$$