File: SI43SY.PA of Tape: OS8/OS8-V40/v40-9
(Source file text)
/SYS. IND. M43 SYS HNDLR / / / / / / / / /COPYRIGHT (C) 1980 BY DATAPLAN GMBH, LAUDA, BRD / / / / / / / / / / /THE INFORMATION IN THIS DOCUMENT IS SUBJECT TO CHANGE WITHOUT NOTICE /AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DATAPLAN GMBH. /DATAPLAN GMBH ASSUMES NO RESPONSIBILITY FOR ANY ERRORS THAT MAY APPEAR /IN THIS DOCUMENT. / /THE SOFTWARE DESCRIBED IN THIS DOCUMENT IS FURNISHED TO THE PURCHASER /UNDER A LICENSE FOR USE ON A SINGLE COMPUTER SYSTEM AND CAN BE COPIED /(WITH INCLUSION OF DATAPLAN'S COPYRIGHT NOTICE) ONLY FOR USE IN SUCH /SYSTEM, EXCEPT AS MAY OTHERWISE BE PROVIDED IN WRITING BY DATAPLAN. / /DATAPLAN GMBH ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY /OF ITS SOFTWARE ON EQUIPMENT THAT IS NOT SUPPLIED BY DATAPLAN. / / / / / / / / / / / /WVDM, DP, ZUERICH, 1-JAN-80 /SI MOD43 SYS HNDLR OS/8 V3 /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. /HANDLER MODIFIED TO EXIT WITH NO ERRORS AND /NO DATA XFER ON ZERO PAGE COUNT 8/73 VERSION="M&77 /DEFINITIONS: /PORT0: FOR 128 WORD/SECTOR DISKS, PORT0=1; FOR 256 WORD/SECTOR / DISKS, PORT0=0. PORT0=0 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 DKA0;4400;1007;0;6200 DEVICE SISY;DEVICE DKB0;4400;DSKDRV&177+1000;0;6200 BOOTA-BOOTB /# OF WORDS IN BOOT /SECONDARY BOOTSTRAP RELOC 0 BOOTA, NOP /PAD TO GET TO TOGGLE IN BOOT DATSAV, 0 BTDATE, -7665 BTCNT1, -200 DSDD JMP .-1 DSDE /CHECK FOR ERRORS JMP BOOT DRSR /QUIT NOW WITH STATUS IN AC HLT JMP .-1 BOOTX1, 177 BOOTX2, 7577 BOOTX3, 46 BOOTX4, 7646 BOOT, TAD I BOOTX1 DCA I BOOTX2 ISZ BTCNT1 JMP BOOT BOOT1, TAD I BOOTX3 CDF 10 DCA I BOOTX4 CDF 0 TAD BTDATE TAD BOOTX4 SZA CLA JMP BOOTON ISZ BOOTX3 ISZ BOOTX4 BOOTON, CLA IAC TAD BOOTX4 SZA CLA JMP BOOT1 JMP I RESTRT RESTRT, 7605 BOOTB, RELOC /BOOTSTRAP PROCEDURE: /TOGGLE IN FOLLOWING INSTRUCTIONS /LOC OCTAL INST /0 6502 DLCR /ASSURE DATA FIELD 0 (ALSO WORD COUNT) /1 0000 /START CORE ADDRESS /2 6517 DWCA /SET WC, CA FROM 0 AND 1 /3 6512 DLSR /SECTOR 0 /4 6514 DLTR /READ FROM TRACK ZERO /5 5005 JMP . /WAIT FOR RESULT /START THE BOOT AT ADDRESS ZERO /NOTE: / THE -AC- MUST BE ZERO. 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 IFNZRO PORT0 <CLL RAL> /FOR 128 WD/SECTOR DISKS IFZERO PORT0 <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> /DK 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 $$$$$