File: M43SY3.PA of Tape: Various/System-Tapes/s5
(Source file text)
/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 /DEFINITIONS: /PORT0: FOR 128 WORD/SECTOR DISKS, PORT0=1; FOR 256 WORD/SECTOR / DISKS, PORT0=0. /VERSION D: 23-OCT-78 (RK NAMES) VERSION="D&77 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 RKA0;4400;1007;0;6200 DEVICE SISY;DEVICE RKB0;4400;DSKDRV&177+1000;0;6200 EJECT /BOOTSTRAP -32 /# WORDS IN BOOT NOPUNC *0 ENPUNC NOP /PAD TO GET TO TOGGLE IN BOOT NOP NOP NOP 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 TAD I BOOTX3 CDF 10 DCA I BOOTX4 CDF 0 TAD BOOTX2 SZA CLA JMP BOOT JMP I RESTRT RESTRT, 7605 /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 NOPUNC *7600 ENPUNC 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, 03 /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 $$$$$