IDENT 6DD,MSFW PERIPH BASE MIXED SST TITLE 6DD - CONCURRENT PP MS OVERLAY LOADER. *COMMENT 6DD - CONCURRENT PP MS OVERLAY LOADER. COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1992. 6DD SPACE 4,10 *** 6DD - CONCURRENT PP MS OVERLAY LOADER. * * S. L. BETH. 86/08/14. SPACE 4,20 *** *6DD* LOADS MS OVERLAYS INTO CONCURRENT PPS (CPP). IT IS * EXPECTED THAT THE ONLY CPP SUBROUTINE TO CALL *6DD* WILL BE * THE PERIPHERAL LIBRARY LOADER (PLL) IN PP RESIDENT. *6DD* IS * LOADED INTO THE DRIVER OVERLAY AREA WHEN A CPP PROGRAM ISSUES * A *SETMS* REQUEST FOR A 12 BIT MS OVERLAY LOAD. 6DD PROVIDES * THE STANDARD DRIVER ENTRY POINTS, *RDS*, *WDS*, AND *EMS*. * * WHEN IT IS CALLED AT *RDS*, IT ISSUES A CALL TO *1MA* TO AID * THE LOAD. *1MA* WILL READ THE DISK AND PASS THE DATA TO * *6DD* VIA THE MESSAGE BUFFER. * * WHEN *6DD* IS CALLED AT *WDS*, IT HANGS THE *CPP*. * * WHEN IT IS CALLED AT *EMS*, IT SIMPLY RETURNS TO THE CALLER. * SPACE 4,10 *** ENTRY CONDITIONS. * * MS RESIDENT OVERLAY. * (T5 - T7) = 6/ ESTO,12/ TRACK,12/ SECTOR * * MS READ. (NOT SUPPORTED) * (T5 - T7) = 3/0, 9/ ESTO,12/ TRACK,12/ SECTOR COMMON SPACE 4,10 * COMMON DECKS. *CALL COMPMAC *CALL COMPIOU *CALL COMSMSC *CALL COMSMSP EJECT ** ENTRY POINT TRANSFERS. ORG MSFW CON PRS PRESET ADDRESS RDS CON 0 ENTRY UJN RDS. ENTER DRIVER WDS CON 0 ENTRY UJN WDS. ENTER DRIVER EMS SPACE 4,10 ** EMS - END MASS STORAGE OPERATION. * * EXIT (A) = 0. .EMS SUBR ENTRY/EXIT LDN 0 STM CHRV UJN .EMSX RETURN WDS SPACE 4,10 ** WDS - WRITE SECTOR. * * *WDS* HANGS THE PP WHEN IT IS CALLED. * * ENTRY (A) = BUFFER ADDRESS FOR SECTOR. WDS. MONITOR HNGM HANG THE PP WDS1 UJN WDS. CONTINUE HANGING RDS SPACE 4,10 ** RDS - READ SECTOR. * * ENTRY (LA) = BUFFER ADDRESS FOR SECTOR. * * EXIT (A) = 0 IF TRANSFER COMPLETE. * .LT O, IF ERROR OCCURRED. RDS. LDD IA STM RDSB+4 LDN 0 STD T4 STD CM+1 LDD T5 CLEAR RECORD TYPE DATA LPC 377 STD T5 LDD MA CALL *1MA* TO ASSIST IN THE LOAD CWM RDSB,ON STD CM CWD T4 MONITOR RPPM LDDL LA SET LOAD ADDRESS STML RDSA RDS1 PAUSE LDD MA ADN 1 CRD CM LDD CM CHECK FOR DATA READY SHN 21-13 MJN RDS2 IF ERROR IN LOAD SHN 13-12 MJN RDS3 IF EOR ENCOUNTERED ZJN RDS1 IF DATA NOT READY LDD MA READ DATA ADN 2 CRM **,CM RDSA EQU *-1 LDD CM ADVANCE READ ADDRESS SHN 2 ADD CM RAML RDSA LDN 0 INDICATE READY FOR NEXT BLOCK STD CM LDD MA ADN 1 CWD CM UJN RDS1 LOOP FOR MORE DATA RDS2 LDML RDS SET RETURN ADDRESS STDL CM LCN 1 SET ERROR FLAG LJM 0,CM RETURN RDS3 LDML RDS SET RETURN ADDRESS STDL CM LDN 0 INDICATE READ COMPLETE LJM 0,CM RETURN RDSB VFD 18/3L1MA,6/0,12/11,24/0 PRS SPACE 4,10 ** PRS - PRESET. * * MACROS BLI. PRS LDC PRSA GET TABLE OF LONG INSTRUCTIONS STD CM+4 LDD T3 PRESERVE *T3* STD CM+3 PRS1 LDI CM+4 GET NEXT INSTRUCTION ADDRESS ZJN PRS2 IF END OF LIST STD T3 BLI T3 BUILD LONG INSTRUCTION AOD CM+4 UJN PRS1 PROCESS NEXT INSTRUCTION PRS2 LDD CM+3 RESTORE *T3* STD T3 LDC SMSX ENSURE PRESET IS NOT RE-EXECUTED STM MSFW LJM SMSX RETURN PRSA BSS 0 LIST16 .1 MAX * .1 SET .1+4-MSFW CHECK FOR OVERFLOW .1 SET .1/5 .1 SET MSFW+.1*5 .2 SET PPFW-5-*-5 BYTES AVAILABLE BEFORE OVERFLOW ERRNG PPFW-5-.1 DRIVER OVERFLOWS INTO *PPFW*-5 END