cdc:nos2.source:opl871:6dd
Table of Contents
6DD
Table Of Contents
- [00005] 6DD - CONCURRENT PP MS OVERLAY LOADER.
- [00009] CONCURRENT PP MS OVERLAY LOADER.
- [00060] EMS - END MASS STORAGE OPERATION.
- [00070] WDS - WRITE SECTOR.
- [00080] RDS - READ SECTOR.
- [00141] PRS - PRESET.
Source Code
- 6DD.txt
- 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
cdc/nos2.source/opl871/6dd.txt ยท Last modified: 2023/08/05 17:24 by Site Administrator